mame  2022/04/03更新

【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

お疲れ様でした。

何か間違いがありましたら、ご指摘宜しくお願い致します。

タイトルとURLをコピーしました