我正在使用Rails 3.2。我正在尝试为has_one关系构建一个对象(每个驱动程序都有一个cdl_driving_license)。我之前做过很多次类似的任务,并且工作得很好。这种特殊的情况下,我不断收到此错误:Rails 3.2 has_one构建:未定义的方法serialized_attributes为零:NilClass
undefined method `serialized_attributes' for nil:NilClass
这里是我相关的代码:
driver.rb
has_one :cdl_driving_license, dependent: :destroy
accepts_nested_attributes_for :cdl_driving_license, :allow_destroy => true
cdl_driving_license.rb
belongs_to :driver
drivers_controller.rb
def new
@driver = Driver.new
@driver.build_cdl_driving_license
#more code...
end
任何想法是什么导致此错误?
不,据我所知,如果关联是使用has_one定义的,我们使用“build_association”函数。对于has_many,它应该是“association.build”。在我的情况下,我有一个has_one协会.. – yara
我刚刚将我的关联更改为has_many,并使用“@ driver.cdl_driving_licenses.build”。通过这些更改,我仍然从“build”行中得到了同样的错误“nil:NilClass的未定义方法序列化属性”。 – yara