概要
RailsのActiveRecordでよく使う、firstメソッド。
よく User.first
のような形でコンソールでサンプルを取得する時に使うのではないでしょうか
今回、first
メソッドについて書いてみました
内容
firstメソッドは、IDが先頭のレコードを返しているのか?
こちらのメソッドを使うことで、ActiveRecordのテーブルの最初のレコードを取得できます。 しかし、必ずIDが1のレコードを持ってきているわけではありません。
# 必ず idの順番で並んでいるわけではない… u = User.first #<User id: 1, name: taro, email: test@example.com >
なぜなら、レコードの順番はDBの設定によるからです。テーブル設計段階でIDではないカラムがレコードの順番を決めている場合、firstで取得しているのは、id = 1 のレコードではなくなります
User.first は id 1 というレコードではありません!!!
テストや実装等では、必ず User.find(1)
, User.find_by(id: 1)
のようにid(他カラムも)を指定して
レコードを取得するようしましょう
まとめ
今回は、文章が多くなってしまいましたが、
最後まで読んでいただき、ありがとうございました。