find
>> User.find(1)
User Load (2.4ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
=>
#<User:0x0000000109a26750
id: 1,
name: "tarou"
- 引数に指定できるのは数値のみ。
- idを対象にして検索する場合に用いる
- 該当するデータがなかった場合は、エラーが発生する。
find_by
>> User.find_by(name: 'tarou')
User Load (2.3ms) SELECT `users`.* FROM `users` WHERE `users`.`name` = 'ryoya' LIMIT 1
=>
#<User:0x000000010c95e8b0
id: 1,
name: "tarou"
- 引数にはidや他のカラムも指定できる。
- 引数はキーとバリューで指定する必要がある。
- 該当するデータのうち、最初に見つかったデータを返す。
- 該当するデータがなかった場合は
nil
を返す。
where
>> User.where(name: 'tarou')
User Load (3.5ms) SELECT `users`.* FROM `users` WHERE `users`.`name` = 'tarou'
[#<User:0x000000010a962f48
id: 1,
name: "tarou"
#<User:0x000000010a962e80
id: 2,
name: "tarou"
#<User:0x000000010a962d76
id: 3,
name: "tarou"
- 引数にはidや他のカラムも指定できる。
- 引数はキーとバリューで指定する必要がある。
- 該当するデータを全て返す。
- 該当するデータがなかった場合は、空の配列を返す。
参考