获取与不同模型的记录集关联的所有模型记录

时间:2014-06-24 19:10:33

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord

我想收集一些"帖子"这是在过去一天制作的,并获得了他们所有作者的电子邮件。

author has_many posts

第1步:获取今天创建的所有帖子(有效)

Posts.where('created_at > :today', today: Time.zone.now.beginning_of_day)

第2步:获取这些帖子的所有作者(这是什么语法?)

Posts.where('created_at > :today', today: Time.zone.now.beginning_of_day).authors??? # Returns undefined method for ActiveRecord_Relation.

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式收到一系列电子邮件:

Posts.where('created_at > :today', today: Time.zone.now.beginning_of_day).joins(:author).pluck("authors.email")

如果您需要ActiveRecord::Relation,则必须使用您想要获得的课程开始查询

Author.joins(:posts).where("posts.created_at > :today", today: Time.zone.now.beginning_of_day)

答案 1 :(得分:0)

渴望加载作者

Posts.includes(:author).where('created_at > :today', today: Time.zone.now.beginning_of_day).collect(&:author)