2011-11-21 63 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的默認方法。