【问题标题】:Using Include Query through Indirect Associations通过间接关联使用包含查询
【发布时间】:2013-04-19 15:54:10
【问题描述】:
我有一个users 表,其中有许多group users 和一个user account summary。所有这些表都具有相同的字段user_id。我希望将用户帐户摘要包含到组用户查询中。所以我想这样做......
@group.group_users.includes(:user_account_summary)
但它告诉我未找到关联的名称。如何修复查询以将用户的帐户摘要与组用户的摘要一起包含在内?甚至可能吗?
【问题讨论】:
标签:
ruby-on-rails
ruby
ruby-on-rails-3
join
【解决方案1】:
试试@group.group_users.includes(:user => :user_account_summary)。由于user_account_summary 是User 上的关联而不是GroupUser,因此关联必须通过User。
如果您想更频繁地使用关联,您还可以添加与GroupUser 匹配的user_account_summary 关系:
class GroupUser < ActiveRecord::Base
has_one :user_account_summary, :primary_key => 'user_id', :foreign_key => 'user_id'
end