データベースからすべてのレコードを取得できるようにしたいと思います。
u = User.all
そして、読み込まれると、結果のコレクションに AR メソッドを適用できるようになります。
u.first
これはレールで可能ですか?
データベースからすべてのレコードを取得できるようにしたいと思います。
u = User.all
そして、読み込まれると、結果のコレクションに AR メソッドを適用できるようになります。
u.first
これはレールで可能ですか?
実際にデータベースにクエリを実行すると、結果は ActiveRecord::Relation ではなく配列になります。(ただし#first
、 にも存在するメソッドであるため、問題なく動作しますArray
)。
ただし、ActiveRecord::Relation を構築するための開始点が必要な場合は、次を使用できますscoped
。
# Doesn't execute a query yet
u = User.scoped
# This now executes a query similar to SELECT * FROM users LIMIT 1
u.first
Rails 4.0 では#all
と同じことを行うことに注意してください#scoped
(Rails 3 では配列を返します)。
試してみませんか?
User.all
AR コレクションを返さず、配列を返します。を取り除くと.all
、実際の例が得られます。