我正在尝试设置一个ActiveRecord对象来建模一个关系,其中一个表是自引用,父对子,多个父母和多个孩子可能。
表格本身如下:
create_table :widget do |t|
t.string :name ,:string ,:null=>false ,:limit=>100
t.string :url ,:string ,:null=>true ,:limit=>100
t.timestamps
end
,rel表格如下:
create_table "widget_rels" do |t|
t.integer "parent_id"
t.integer "child_id"
end
但我正在努力解决AR对象为这段关系定义的问题。
似乎是“has_and_belongs_to_many”或“has_many, :through=>”,但不确定自引用部分如何影响事物..
非常感谢任何指导!
答案 0 :(得分:0)
不是100%肯定它会起作用,但你可以试试这个:
widget.rb
has_and_belong_to_many :parents, :class_name => "Widget", through: :widget_rels, :foreign_key => 'parent_id'
has_and_belong_to_many :children, :class_name => "Widget", through: :widget_rels, :foreign_key => 'child_id'