はじめに
標題の通り、findとfind_byの違いでつまづいてしまいました。
何とか解決はできましたので、復習も兼ねてoutput致します。
もうすでにご存知の方、省略の仕方等ご存知でしたら、ご教授願います。
一言でいうと・・・
findメソッド : 各モデルのidカラムのデータを指定して、レコードからデータを取得する
find_byメソッド : あるカラムを使って、レコードから最初に一致した1件だけを返してくれる
findメソッドは探してるidがない場合エラーを出してきます。(idを検索キーとしているため)
find_byメソッドなら探しているidがない場合、nilが返ってきます。
findメソッドとは
- idカラムの値を指定し、その値を持つレコードを取得する。
以下、例ではtasksテーブルのidを指定し、そのidのレコードを取得しています。

- 仮にDBに保存されていないidカラムの値を指定すると、ActiveRecordのエラーが出てしまいます。

find_byメソッドとは
あるカラムを使ってレコードを検索し、最初に一致した1件だけ返してくれる。
例)titleカラムが「3/2 Todo」であるレコードを1つ取り出す。

さいごに
日々勉強中ですので、随時更新します。
皆様の復習にご活用頂けますと幸いです。