使用postgresql在rails 5.0中自我连接

时间:2017-02-18 11:36:29

标签: ruby-on-rails

我正在尝试在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

这是我的迁移文件。

1 个答案:

答案 0 :(得分:2)

Rails 5默认需要belongs_to关联。要禁用它,您需要将optional: true添加到belongs_to

belongs_to :parent, class_name: "ItemGroup", optional: true