【Ruby on Rails】find・find_by・whereメソッドの違い
find・find_by・whereメソッドの違い
こんにちは。
暖かくなってきましたね。
私が住んでる県では桜が満開を迎えています。
季節の変わり目体調には十分お気を付けください。
それでは説明していきます。
そもそもfind・find_by・whereメソッドとは?
データ取得の仕方におけるルールみたいな感じです。
def
show @List = List.find(params[:id])
end
コントローラーで出てきますね。
find・idを指定して見つかった1件を返す
・id以外での条件で検索不可
・取得したいidの値が具体的に分かっている場合
・該当データがない場合はエラー(ActiveRecord::RecordNotFound)が返ってくる
find_by・id以外のカラムを指定しても見つかった1件を返す
・id以外の条件での検索可能
・返ってくる結果は、最初にヒットした1件のみ
・id及びid以外の条件が分かっている場合
・該当データがない場合nilが返ってくる
where・id以外での条件で検索可能
・該当するデータ全てが返ってくる。
返ってくる件数id以外の条件での検索可否該当データがない場合find1件不可能
エラー※a
find_by1件可能nilwhere複数可能空の配列※a ActiveRecord::RecordNotFound
お疲れ様でした。
何か間違いがありましたら、ご指摘宜しくお願い致します。