2016-10-12 124 views
1

我有以下遷移:保存活動記錄對象

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 

每當我試圖保存子對象與mother_id領域的空白,我得到的錯誤:「母親必須存在」

有沒有一種方法可以保存這個沒有mother_id字段?

+0

你有沒有驗證在你的'Son'模型中檢查'mother_id'的存在?如果是這樣,您需要刪除該驗證以將'mother_id'字段留空的Son對象保存。 – Pavan

+0

沒有驗證。但是,當我從Son模型中刪除belongs_to:mother時,它工作得很好。 – dhaliman

回答

2

在你Son模型,只需添加optional PARAM,使其工作:

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

在默認情況下,鐵軌將其設置爲true,讓我們使用false相反,詳細介紹了here

+0

非常感謝!你是一個天才。 – dhaliman