我的 Rails 应用中有这些模型:
group.rb
has_many :group_members
has_many :group_foo_types
group_member.rb
# fields
:group_id, :user_id
belongs_to:group
has_many :group_foo_types, :through=>:groups
has_one :user
has_many :foo, :through=>:user
has_many :bar, :through=>:user
group_foo_type.rb
# fields
:group_id, :foo_type_id
belongs_to :group
belongs_to :foo_type
user.rb
has_many :foo
has_many :bar
foo.rb
# fields
:user_id, :foo_type_id
belongs_to :user
belongs_to :foo_type
bar.rb
# fields
:user_id, :foo_type_id
belongs_to :user
belongs_to :foo_type
我想要做的是,对于一个组,考虑到组的 foo_type_id(来自 group_foo_type),找到每个用户的 foos 和 bar。
但是,我不确定我是否正确建模。
由此看来,我似乎可以group.group_members.user
先获取用户,然后再user.foos' and 'user.bars
获取用户的 foos 和 bar。这没有考虑到foo_type_id
尽管group
(从group_foo_type
)。
有人可以帮忙推荐一种方法来完成我想做的事情吗?谢谢!