2016-10-19 113 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协会 –