qiitaに仕組みがよくわからない記事がありました。
よくわからない記事
この記事の中で
class User < ApplicationRecord
has_one :latest_article, lambda {
order(created_at: :desc)
}, class_name: :Article
end
としているところがあり、これでuser.last_articleとすることで、最新の記事を一件得ることができて、articleの複数のカラムの呼び出しも一度のクエリですむようになっているということで使いたいと思いました。しかしこれのしくみがよくわかりません。実際にはarticleは複数なのでarticleで並び替えて、has_oneなので1対1にするために一番上以外は取得せずに返すということでしょうか?
これを応用して has_many :top3_latest_articles, lambda {
order(created_at: :desc), limit(3)
}, class_name: :Article
として(limitの書き方間違っていたら教えていただけませんか)
user.top3_latist_articles each do |article|...みたいにつかうことはできますか?
あなたの回答
tips
プレビュー