2011-12-09 42 views
0

我认为这是一个简单的问题,但我不能让我的头绕着解决方案。如果我的记录(在这种情况下,报告)的集合:简单地从多个其他记录中提取多个记录...(Rails/Ruby)

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

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

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

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

回答

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)) 
+0

是完全有道理的所有用户。谢谢 – user1051849

+0

我直接回答你的问题,虽然你可能想使用关联和急切的加载ie。 '@reports = Reports.includes(:users)' – clyfe