如何获取对象的子对象的所有子对象?

时间:2015-08-06 19:28:31

标签: ruby-on-rails ruby

对于令人困惑的标题感到抱歉,我不确定如何说出来。但我有User类有很多projectsProject类有很多wbs_items。那么如何获取属于单个用户的所有wbs_items的所有projects

理想情况下,我会这样做:

current_user.projects.wbs_items

但这不起作用。

3 个答案:

答案 0 :(得分:4)

我能够通过在我的模型中添加这一行来解决这个问题:

has_many :wbs_items, :through => :projects

然后我可以通过以下方式获得所有wbs_items

current_user.wbs_items

答案 1 :(得分:1)

# User model
has_many :projects
has_many :wbs_items, through: :projects

# this will return all wbs_items of the current user
current_user.wbs_items

答案 2 :(得分:0)

如果没有看到您的代码,我认为您的方法可能如下所示:

  1. 为project / wbs_items关系创建哈希:Projects => [array_of_wbs_items]
  2. 根据在项目/ wbs_items散列中查找项目来迭代用户并分配wbs_items