Невозможно построить дочерний объект has_one из вложенного form_for - PullRequest
1 голос
/ 21 ноября 2011

У меня есть пользовательская модель, которая имеет Spec_one Spec. В моей модели User я указывал accepts_nested_attributes_for: spec и attr_accessible: spec_attributes.

Я создал вложенную форму для пользователя и спецификации (вложенная). Хеш, отправленный методу #create, выглядит нормально:

 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 для объекта User, я получаю сообщение о том, что это личное сообщение. Я открыл исходный код для этой ошибки, и он говорит, что это сообщение об ошибке появляется, когда пользователь не отвечает на метод build_spec.

Что я сделал не так и как я могу это исправить?

Спасибо.

1 Ответ

1 голос
/ 22 ноября 2011

Я понял это.Я создал приватный метод с именем build_spec, поэтому переопределил метод build_association по умолчанию.

...