2011-11-21 6 views
1

has_one Spec. 사용자 모델이 있습니다. 내 사용자 모델에서 accepts_nested_attributes_for : spec 및 attr_accessible : spec_attributes를 지정했습니다.중첩 된 form_for에서 has_one 자식 개체를 만들 수 없습니다.

사용자 및 사양 (중첩)에 대해 중첩 된 양식을 만들었습니다. 해시는 방법은 잘 보이는 # 만들기로 전송 :

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?) 

내 사양 비록 다형성이 아니다. User 객체에서 build_spec을 호출하려고하면이 메시지가 비공개 메시지라는 오류가 발생합니다. 이 오류의 소스 코드를 열었습니다. 사용자가 build_spec 메서드에 응답하지 않으면이 메시지 오류가 표시됩니다.

내가 뭘 잘못했는데 어떻게 해결할 수 있습니까?

감사합니다.

+0

누구든지 질문에 답할 수 있도록 자세한 정보가 필요하다고 생각합니다. – drhenner

+0

또한 모델 사양의 이름을 지정하는 것은 나쁜 생각 일 수 있습니다. 나는 그것이이 문제의 원인이 아니라고 믿지만 다른 많은 문제를 일으킬 수 있습니다. – drhenner

+0

고맙습니다. 전에 Spec과 관련된 문제가있었습니다. 하지만 Rails의 리팩토링은 고통스럽기 때문에 (텍스트 메이트를 사용하고 있습니다.) 얼마 동안은 그대로 두어야 할 것입니다. – AdamNYC

답변

1

나는 그것을 알아 냈다. 이름이 build_spec 인 개인 메소드를 작성하여 build_association의 기본 메소드를 대체합니다.

관련 문제