我有一个自引用has_many :through
模型,该模型与另一个模型有另一个has_and_belongs_to_many。基本上是这样的:
class Foo << ActiveRecord::Base
has_and_belongs_to_many :bars
has_many :foo_links
has_many :foo_parents, :through => :foo_links, :foreign_key => :foo_parent_id, :class_name => "Foo"
has_many :foo_children, :through => :foo_links, :foreign_key => :foo_child_id, :class_name => "Foo"
end
我希望能够让foo_child
项能够属于分配给它的任何bars
,以及任何一个bars
项目。 foo_ancestors
(foo_parents
及其foo_parents
等)已分配。我基本上希望把这样的东西放在一起:
has_many :inherited_bars, :through => :foo_parents, :source => [:bars, :inherited_bars]
我从来没有见过这样的例子,但我想知道是否有可能建立一个关联合并关联的协会。
答案 0 :(得分:0)
我认为has_many关联总是与某个地方有一个id来表示关系,并允许你修改它。例如。您可以向has_many数组添加新元素,并将结果保留回数据库。如果您可以将两个源合并在一起,则无法通过此链接行。
一种可能的方法是这样,只读方式:
has_many :a
has_many :b
def sum
a + b
end