2013-11-25 92 views
0

我有一個用戶表,我想所有類型的默認值,但我希望默認值是不同的每種類型。我在基類上有一個before_create回調方法,該方法的值設置爲something,並且在爲其他值繼承它的類中重寫該方法,但每次種子時都會得到一個RecordNotSaved錯誤。我如何去做這件事?默認值與單表繼承

謝謝!

+0

你可以張貼在你的類爲您before_create回調的代碼?我打賭他們無意中返回false,這是RecordNotSaved的常見原因。 RecordNotSaved基本上告訴你這個對象是無效的。查看RecordNotSaved的文檔,希望有所幫助。 – wkhatch

+0

這正是問題所在!謝謝! – babaloo

+2

我可以將其添加爲答案嗎?大聲笑 – wkhatch

回答

0

檢查您的回調函數before_create;如果他們返回false,你會得到這個錯誤。一般而言,RecordNotSaved表示驗證錯誤,如果您的回調函數返回false,甚至無意中,您將得到該錯誤。

0

您可以編寫數據庫觸發器來設置默認值,我會推薦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 

```