RoR, стоимость места от select_tag в мешанине params

Я смущен принятым способом обновить ассоциацию. Давайте предположим, что есть 2 модели, Рабочий и Фабрика. Редактируя Рабочего, пользователю дарят select_tag, который содержит список фабрик. Моя проблема - то, что factory_id не находится в params [: рабочий] [: factory_id] мешанина, но находится вместо этого в params [: factory_id] мешанина. Эффект конца состоит в том, что, когда моего рабочего update_attributes вызывают, factory_id не обновляется, потому что это не находится в: мешанина рабочего.

Мой вопрос, должен я даже попытаться получить мой factory_id в params [: рабочий] крошит посредством изменения моего erb файла, или если я вручную обновить стоимость в params [: рабочий] [: factory_id] со стоимостью, найденной в params [: factory_id]. Ниже мой код erb на всякий случай есть что-то другое, что я должен делать там. Кроме того, Фабричный класс has_many рабочие и класс Рабочего belongs_to Фабричный класс, если это помогает.

<div>
  <%= label_tag :factory , "Factory" %>
<%= select_tag "factory_id", options_from_collection_for_select(@state_factories... %> </div>

Любая помощь значительно ценится.

1
nl ja de

1 ответы

Сделайте это в файле ERB:

<%= select_tag "worker[factory_id]", options_from_collection_for_select(@state_factories... %>

Хотя, я использовал бы избранного помощника:

<%= select "worker", "factory_id", options_from_collection_for_select(@state_factories... %>

Поскольку это автоматически выбрало бы фабрику на, редактируют.

1
добавлено
Это было им. Вы возражали бы объяснять, почему вы выбираете избранный по select_tag? Результаты поиска "избранного помощника против select_tag" довольно скудны. Еще раз спасибо!
добавлено автор Black Dynamite, источник
Уверенный. Если вы установите объект @worker в диспетчере, избранный помощник посмотрит на объект и автоматически выберет соответствующий выбор в предоставленном HTML. Обычный способ произвести список состоит в том, чтобы просто пройти во множестве последовательностей и позволить помощнику произвести варианты. Не зная ваш фабричный объект, что-то вроде этого могло бы работать: gist.github.com/4402711 select_tag - просто основная обертка вокруг строителя HTML - необходимо передать последовательность <выбора> признаки сами.
добавлено автор Myles Eftos, источник