基本上,我想完成这样的事情:
Class Node < ActiveRecord::Base
has_and_belongs_to_many :parents, :class_name=>'Node'
has_and_belongs_to_many :children, :class_name=>'Node'
end
但它不起作用,而且我不完全确定执行此操作的正确方法。接下来我将尝试显式定义一个连接表并让两者都使用它:如果这是解决方案,该列会被称为“children_id”还是“child_id”?
最佳答案
Class Node < ActiveRecord::Base
has_and_belongs_to_many :parents, :class_name=>'Node', :join_table => "parents_children", :foreign_key => :child_id, :association_foreign_key => :parent_id
has_and_belongs_to_many :children, :class_name=>'Node', :join_table => "parents_children", :foreign_key => :parent_id, :association_foreign_key => :child_id
end
请注意,只要您在此处设置适当的外键名称,就可以重命名连接表和外键。
关于ruby-on-rails - 我怎样才能 has_and_belongs_to_many 同一模型的多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8826831/