我正在尝试在rails中创建自联接。
class ItemGroup < ApplicationRecord
has_many :children, class_name: "ItemGroup", foreign_key: "parent_id"
belongs_to :parent, class_name: "ItemGroup"
end
这是我的代码,但是当我尝试添加新记录时,它并没有保存它。那么这个代码中的问题是什么,任何人都可以帮助我或者让我了解自我加入。
class CreateItemGroups < ActiveRecord::Migration[5.0]
def change
create_table :item_groups do |t|
t.string :name
t.integer :parent_id
t.text :description
t.references :parent, index: true
t.timestamps
end
end
end
这是我的迁移文件。
答案 0 :(得分:2)
Rails 5默认需要belongs_to
关联。要禁用它,您需要将optional: true
添加到belongs_to
belongs_to :parent, class_name: "ItemGroup", optional: true