Ruby on rails 如何为自引用多对多关系建模?

Ruby on rails 如何为自引用多对多关系建模?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我正在尝试设置一个ActiveRecord对象来建模一个关系,其中一个表是自引用的,父到子的,可能有多个父对象和多个子对象 表本身看起来像: create_table :widget do |t| t.string :name ,:string ,:null=>false ,:limit=>100 t.string :url ,:string ,:null=>true

我正在尝试设置一个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对象对关系的定义而挣扎

看起来像“”或“”,但不确定自引用部分如何影响内容


非常感谢您的指导

不能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'