简单地从多个其他记录中提取多个记录...(Rails / Ruby)

时间:2011-12-09 12:52:55

标签: ruby ruby-on-rails-3

我认为这是一个简单的问题,但我无法理解我的解决方案。如果我有一组记录(在这种情况下是报告):

@reports = Report.all,  :conditions => ["score > 10"]

然后我尝试找到其他类型记录的关联集合(在这种情况下是用户)我天真地试试这个 - 但是从偏移量知道它不会起作用:

@users = User.find   :all,  :conditions => ["id IN (?)", @results.user_id]

那么,我如何有效地提取@users记录集合呢?

1 个答案:

答案 0 :(得分:4)

假设User has_many :reports

@users = User.joins(:reports) # all users that have reports

如果您只想要某些特定报告的所有用户

@users = User.joins(:reports).where("reports.id IN (?)", @reports.map(&:id))