find -「データベースから検索」-
`モデル.find(引数)`
・引数には**IDのみ**が入りうる。
・返り値として、指定したモデルの中の引数に合致したインスタンスを出す。
・取得したいデータのIDがわかっているとき使用できる。
・引数のところに配列が入ることで、複数のIDを指定してデータベースから複数のデータを引き出すことができる。
例1
`Book.find(3)`
Bookモデルの中からIDが3のデータを取得する。
例2
`Book.find([2,4])`
Bookモデルの中からIDが2,4のデータを配列で返す。
find_by -検索条件を指定して(IDではなくてもよい)最初の1件を取得-
`モデル.find_by(条件)`
・条件に当てはまるモデルを検索する。
・条件はID以外のカラムを用いて指定することができる。
・返り値として、指定したモデルの条件に合致するインスタンスを出す。複数合致した場合はそれらの中の一番最初のものを返り値とする。
・**1件だけ**インスタンスを取得するときにのみ使用できる。
例1
`Book.find_by(author: Edogawa)`
`==>Nisendouka`
Bookモデル全体から、authorがEdogawaであるインスタンスのうち最初の1件を返す。
例2
`Book.find_by(author: Edogawa, Published: 1951)`
`==>Geneijo`
Bookモデル全体から、authorがEdogawaであり、Publishedが1951であるインスタンスのうち最初の1件を返す。
where -検索条件を指定して(IDではなくてもよい)該当するデータ全て取得-
`モデル.where(条件)`
・条件に当てはまるインスタンスを検索する。
・該当するデータ**全て**を取得する。しかし、戻り値は配列ではなく、ActiveRecord::Relationというオブジェクトとなる。インスタンスではないため、`.where`で取得したデータをそのまま使用することができない。
例
`Book.where(author: Edogawa).first`
`==>Nisendouka`
Bookモデル全体から、authorがEdogawaであるという条件で絞り込む。その中で一番最初のインスタンスを取り出す。