【发布时间】:2013-04-27 07:48:13
【问题描述】:
我的 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)。
有人可以帮忙推荐一种方法来完成我想做的事情吗?谢谢!
【问题讨论】:
标签: ruby-on-rails