Ruby on rails rails设置关联的默认值

Ruby on rails rails设置关联的默认值,ruby-on-rails,activerecord,ruby-on-rails-5,Ruby On Rails,Activerecord,Ruby On Rails 5,在我的第一个Rails(5)应用程序中,我想为创建时的关联设置一个默认值。已经阅读了相关文档和许多问题,但仍然找不到答案 我在初始化后使用:设置默认值并希望为文档类型设置默认值 def set_default_values unless persisted? self.documenttype || 1 if self.documenttype.nil? self.dateformat ||= 'dd.mm.yyyy' if self.dateforma

在我的第一个Rails(5)应用程序中,我想为创建时的关联设置一个默认值。已经阅读了相关文档和许多问题,但仍然找不到答案

我在初始化后使用
:设置默认值
并希望为
文档类型设置默认值

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

我认为您在这里缺少一个
=

self.documenttype || 1  if self.documenttype.nil?
应该是

self.documenttype ||= build_documenttype
或对于特定的文档类型:

self.documenttype ||= Documenttype.find(1)
编辑:
在评论OP中提到的
documenttype
是一个
有一个
关联。

您忘记了
=
符号:
self.documenttype | |=1
添加
=
符号无法解析;然后它会呈现一个错误
Documenttype(#70289997518120),got Fixnum(#70289925178420)
因此Documenttype需要一个不同类型的对象(Documenttype),而您正试图将默认值设为1,因此出现此错误。什么类型的变量是
documenttype
?如果您能提供更多详细信息,那么我可能会提供帮助。这是一个has_one association控件
self.documenttype | |=build_documenttype
,如果有帮助,那么我将更新我的回答,以及如何添加我想要作为默认值的特定文档类型?