2016-10-12 2 views
1

Ich habe folgende Migrationen:Speicher aktives Datensatz Objekt ohne Referenz-ID

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

      t.timestamps 
     end 
     end 
    end 

und:

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

     t.timestamps 
    end 
    end 
end 

Jedes Mal, wenn ich versuche, ein Sohn-Objekt mit dem mother_id Feld leer zu speichern, erhalte ich die Fehler : "Mutter muss existieren"

Gibt es eine Möglichkeit, dies ohne das Feld mother_id zu speichern?

+0

Haben Sie eine Validierung, bei der das Vorhandensein von "mother_id" in Ihrem "Son" -Modell überprüft wird? Wenn dies der Fall ist, müssen Sie diese Validierung entfernen, um das Son-Objekt mit dem Feld "mother_id" zu speichern. – Pavan

+0

Es gibt keine Validierung. Aber es funktioniert völlig in Ordnung, wenn ich besitze: Mutter aus dem Son-Modell. – dhaliman

Antwort

2

In Ihrem Son Modell, sondern nur die optional param hinzufügen, damit es funktioniert:

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

In standardmäßig Schienen es gesetzt true zu sein, so false stattdessen Gebrauch lassen, wurde das Detail here beschrieben

+0

Vielen Dank! du bist ein Genie. – dhaliman