りゅうじの学習blog

学習したことをアウトプットしていきます。

find、find_by、whereの違い

初歩ですが自分の言葉で整理しようと思い書いておきます。

find

各モデルのidでデータを取得するメソッド。

id以外では使用不可。

取得したいデータのidが具体的に何番かわかっている場合に使用する。

該当データがない場合はエラーを返す。

 

find_by

各モデルのidを含めたid以外の条件でもデータを取得できるメソッド。

一度に複数の条件を指定できる

返ってくるのは最初にヒットした一件のみ

検索条件がわかっていて、その条件に該当する最初の一件のデータを取得したい時に使用する。

該当データがない場合はnilを返す。

 

where

各モデルをid以外で検索する時に使用。

該当するデータ全てが返ってくる。