Вложенные Rails образуют новую ассоциацию - PullRequest
1 голос
/ 22 июля 2011

В настоящее время я создаю форму с некоторыми вложенными атрибутами. Соответствующими частями являются то, что есть модель Sale (основная модель для формы), модель Vehicle (продажа has_one транспортное средство и транспортное средство принадлежит к продаже) и модель Registration_number (многие для многих с транспортными средствами, через таблица назначений).

Я использую отличный плагин Flexbox JQuery, который позволяет выбрать существующий элемент или создать новый элемент.

Поскольку я работаю с Flexbox, рассматриваемые поля кодируются в основном в формате html, минуя помощников рельсов.

Когда я пытаюсь создать новый регистрационный номер (используя имя поля sale[vehicle_attributes][registration_numbers_attributes][0][number]), все работает отлично, создается новый регистрационный номер, который присваивается автомобилю. Однако, когда я пытаюсь присвоить существующий регистрационный номер (используя имя поля sale[vehicle_attributes][registration_numbers_attributes][id]), я получаю следующую ошибку:

Couldn't find RegistrationNumber with ID=3 for Vehicle with ID=5

Это, кажется, не имеет большого смысла - как я понимаю, Rails должен пытаться создать эту ассоциацию, а не находить существующую ассоциацию? Есть идеи, что я могу делать не так?

спасибо!

1 Ответ

2 голосов
/ 23 июля 2011

Этого можно достичь, манипулируя промежуточной таблицей, здесь assignment.

Вставьте в вашу модель:

accepts_nested_attributes_for :assignments

И в своем HTML добавьте эту строку:

<input name="sale[vehicle_attributes][assignments_attributes][0][registration_number_id]" value="the_registration_number_id_goes_here" type="hidden">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...