2011-12-09 58 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