0

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ているものに属することができるようにしたいと考えています。私は基本的に次のようなものをまとめたいと思っていました:barsbarsfoo_ancestorsfoo_parentsfoo_parents

has_many :inherited_bars, :through => :foo_parents, :source => [:bars, :inherited_bars]

そのような例は見たことがありませんが、スルーアソシエーションからアソシエーションを合併したアソシエーションができるのではないかと考えていました。

4

1 に答える 1

0

has_many アソシエーションは、関係を示すためにどこかに ID を持つように常に関連付けられており、これを変更できると思います。例えば。has_many 配列に新しい要素を追加すると、結果がデータベースに永続化されます。2 つのソースを一緒にマージできる場合、これによって行をリンクする機能が失われます。

可能なアプローチは、次の読み取り専用の方法です。

has_many :a
has_many :b

def sum
  a + b
end
于 2012-06-27T14:40:56.430 に答える