railsを学び始めてはや2か月。
作業中にfirstメソッドの使い方で詰まった点があったので書いてみます。
User.first(3)
とすればusersテーブルの最初の3件を取得できるわけですが、最初の1件だけを取得したい場合は
User.first
だけでOKです。
User.first(1)
と書いてしまうと、一見同じレコードを取得したように見えますが、別物のように扱われます。
どうやらfirstの後に()を付けると複数個のレコードを取得したとみなされるようです。
余談ですが、first(1)と書いた場合でも、要は複数個扱いされているのを解消すればいいので
User.first(1).each do |f|
f.email
end
のような感じで、(1件しかないけど)eachで形式上ばらしてあげれば、動くは動きます。
無駄に書く量が増えるだけにしか思えませんが……