我有一些模型,它是自我参照的。它包含somethings
, 可以是child
或parent
, 或两者兼而有之。有可能做这样的事情吗?
class Class < ActiveRecord::Base
belongs_to :parent, class_name: 'Class', foreign_key: :parent_id
has_many :children, class_name: 'Class', foreign_key: :parent_id
has_many :somethings, foreign_key: :something_id
has_many :somethings, through: :children, foreign_key: :something_id
end
我想要做的是调用类似的东西parent.somethings
并获取它们的完整列表。现在我得到的只是stack level too deep
错误。没有最后一行 ( has_many :somethings, through: :children, foreign_key: :something_id
) 我只能得到child.somethings
它并且它工作得很好。
所以基本上我想得到列表somethings
,其中包括somethings
每个child
特定的parent
。
提前致谢!
PS我确实需要ActiveRecord::Associations::CollectionProxy
,所以创建收集方法somethings
,我认为是不可能的。
PPS 对不起,如果我的英语不太好 :p