2011-11-21 55 views
1

我有一个用户模型has_one Spec。在我的User模型中,我确实指定了accep_nested_attributes_for:spec和attr_accessible:spec_attributes。无法从嵌套的form_for构建has_one子对象

我为User和Spec(嵌套)创建了一个嵌套窗体。散列发送到#创建方法看起来不错:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"XXX", "user"=>{"first_name"=>"Adam", 
    "last_name"=>"Smith", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", 
    "spec_attributes"=>{"highest_degree"=>""}} 

不过,我不能建立协会规范这个错误:

ArgumentError (Cannot build association spec. Are you trying to build a polymorphic 
one-to-one association?) 

我的规格是不是多态的,但。当我尝试在用户对象上调用build_spec时,出现一条错误消息,说这是一条私人消息。我打开了这个错误的源代码,它说这个消息错误出现在用户没有响应方法build_spec时。

我做错了什么,我该如何解决?

谢谢。

+0

我想你需要更多的细节让任何人回答这个问题。 – drhenner

+0

同时命名模型规范可能是一个坏主意。我相信这不是导致这个问题,但可能会导致其他问题。 – drhenner

+0

谢谢。我以前遇到过Spec问题。但是Rails中的重构是一种痛苦(我正在使用textMate),所以我将不得不离开它一段时间。 – AdamNYC

回答

1

我想通了。我创建了一个名为build_spec的私有方法,因此覆盖了build_association的默认方法。