LoginSignup
1
0

More than 1 year has passed since last update.

[ruby] find, find_by, whereの違いについて

Last updated at Posted at 2021-06-04

find, find_by, whereの違いについて

初めまして!今回にそれぞれの違いの理解が浅かったので纏めてみました。

find

①「findメソッド」は主キーと呼ばれるidを指定した検索の仕方。

List.find(params[:id])

id以外のカラムを指定してデータを取得したい場合もあります。
 そのような場合には「findメソッド」では解決できないので、別の「find_byメソッド」を使ってデータを取得しなければいけません。

find_by

主なイメージは、「主キー(id)以外のカラムを指定しても、見つかった1レコードを返せる」。

List.find_by(title: "ruby",body: "rails")

1.find_by()の()内に記述できるのは、数値(id)だけでなく、文字(id以外のカラム)も可能
2.id以外のカラムも指定できるので、複数のレコードが見つかる場合もありますが、その時は、一番最初に見つかったレコード1件を取得
3.検索に該当するデータがなかった場合、nilを返す

where

主なイメージは、「主キー(id)以外のカラムも指定できる、且つ、複数のレコードも返せる」

List.where(title: "ruby",body: "rails")

1.where()の()内に記述できるのは、数値(id)だけでなく、文字(id以外のカラム)も可能
2.該当する複数のレコードを取得
3.検索に該当するデータがなかった場合、空の配列を返す


以上、find, find_by, whereの違いについてでした

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0