保存没有引用ID的活动记录对象

时间:2016-10-12 03:58:27

标签: ruby-on-rails activerecord ruby-on-rails-5

我有以下迁移:

 class CreateMothers < ActiveRecord::Migration[5.0]
       def change
         create_table :mothers do |t|
           t.string :name

           t.timestamps
         end
       end
     end

class CreateSons < ActiveRecord::Migration[5.0]
   def change
     create_table :sons do |t|
       t.string :name
       t.references :mother

       t.timestamps
     end
   end
 end

每当我尝试将一个Son对象保存为mother_id字段为空时,我会收到错误:&#34;母亲必须存在&#34;

有没有办法在没有mother_id字段的情况下保存它?

1 个答案:

答案 0 :(得分:2)

在您的Son模型中,只需添加optional参数即可使其正常工作:

class Son < ApplicationRecord
  belongs_to :mother, optional: true
end

默认情况下,rails将其设置为true,因此请改用false,详细说明here