find、find_by、whereの違い
初歩ですが自分の言葉で整理しようと思い書いておきます。
find
各モデルのidでデータを取得するメソッド。
id以外では使用不可。
取得したいデータのidが具体的に何番かわかっている場合に使用する。
該当データがない場合はエラーを返す。
find_by
各モデルのidを含めたid以外の条件でもデータを取得できるメソッド。
一度に複数の条件を指定できる。
返ってくるのは最初にヒットした一件のみ。
検索条件がわかっていて、その条件に該当する最初の一件のデータを取得したい時に使用する。
該当データがない場合はnilを返す。
where
各モデルをid以外で検索する時に使用。
該当するデータ全てが返ってくる。