我有一個用戶表,我想所有類型的默認值,但我希望默認值是不同的每種類型。我在基類上有一個before_create回調方法,該方法的值設置爲something,並且在爲其他值繼承它的類中重寫該方法,但每次種子時都會得到一個RecordNotSaved錯誤。我如何去做這件事?默認值與單表繼承
謝謝!
我有一個用戶表,我想所有類型的默認值,但我希望默認值是不同的每種類型。我在基類上有一個before_create回調方法,該方法的值設置爲something,並且在爲其他值繼承它的類中重寫該方法,但每次種子時都會得到一個RecordNotSaved錯誤。我如何去做這件事?默認值與單表繼承
謝謝!
檢查您的回調函數before_create;如果他們返回false,你會得到這個錯誤。一般而言,RecordNotSaved表示驗證錯誤,如果您的回調函數返回false,甚至無意中,您將得到該錯誤。
您可以編寫數據庫觸發器來設置默認值,我會推薦before_save
而不是before_create
。假設您正在Cars上建立課程。
```
class Car
before_save :default_type
def default_type
self.car_type ||= self.class.name
end
end
class Honda < Car
end
class Tesla < Car
end
```
你可以張貼在你的類爲您before_create回調的代碼?我打賭他們無意中返回false,這是RecordNotSaved的常見原因。 RecordNotSaved基本上告訴你這個對象是無效的。查看RecordNotSaved的文檔,希望有所幫助。 – wkhatch
這正是問題所在!謝謝! – babaloo
我可以將其添加爲答案嗎?大聲笑 – wkhatch