2016-10-19 154 views
1

在我的第一個Rails(5)應用程序中,我想爲create上的關聯設置一個默認值。已閱讀文檔和許多關於SO的問題,但無法找到答案。rails設置關聯的默認值

我用after_initialize :set_default_values並要設置默認爲documenttype

def set_default_values 
    unless persisted? 
     self.documenttype || 1 if self.documenttype.nil? 
     self.dateformat ||= 'dd.mm.yyyy' if self.dateformat.nil? 
    end 
end 
+0

您忘記了'='符號:'self.documenttype || = 1' – MrYoshiji

回答

1

我認爲你在這裏缺少一個=

self.documenttype || 1 if self.documenttype.nil? 

應該是這樣

self.documenttype ||= build_documenttype 

或者針對特定文檔類型:

self.documenttype ||= Documenttype.find(1) 

編輯: 在評論中提到OP是documenttype一個has_one關聯。

+0

加入'='符號不會解決;它然後呈現錯誤'Documenttype(#70289997518120)預計,得到Fixnum(#70289925178420)' –

+0

因此,文檔類型期望不同類型的對象(Documenttype),你試圖把默認值1,所以這個錯誤。什麼樣的變量是'documenttype'?如果可以給我更多的細節,那麼我可以幫助 – Sajan

+0

這是一個has_one協會 –