2014-02-19 45 views
0

我正在使用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 

任何想法是什么导致此错误?

回答

0

想通了。我正在尝试构建的记录属于包含具有保留名称的列的表(我有一个名为“class”的列)。 DUH!

0

在新的方法中,你想怎么办: @ driver.cdl_driving_license.build(PARAMS这里CDL驾照)?

+0

不,据我所知,如果关联是使用has_one定义的,我们使用“build_association”函数。对于has_many,它应该是“association.build”。在我的情况下,我有一个has_one协会.. – yara

+0

我刚刚将我的关联更改为has_many,并使用“@ driver.cdl_driving_licenses.build”。通过这些更改,我仍然从“build”行中得到了同样的错误“nil:NilClass的未定义方法序列化属性”。 – yara

相关问题