我认为这是一个简单的问题,但我无法理解我的解决方案。如果我有一组记录(在这种情况下是报告):
@reports = Report.all, :conditions => ["score > 10"]
然后我尝试找到其他类型记录的关联集合(在这种情况下是用户)我天真地试试这个 - 但是从偏移量知道它不会起作用:
@users = User.find :all, :conditions => ["id IN (?)", @results.user_id]
那么,我如何有效地提取@users记录集合呢?
答案 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))