Объединение нескольких моделей в форме Rails для создания нового объекта
У меня есть две модели, история и категория. Используя форму для Story#new
Я хотел бы иметь возможность сохранить внешний ключ для категории.
Для отображения данных выбора из категории на Story#new
Страница формы, которую я использовал:
<%= collection_select(:category , :category, Category.all , :id, :category, {:prompt => 'Select Category...'}) %>
Как я могу сохранить category_id
на недавно созданный объект Story?
История имеет атрибуты: industry_id
а также user_id
Категория имеет атрибут name
development.log говорит мне следующее: (похоже, он пытается добавить новую категорию (99) в таблицу категорий
Started POST "/stories" for 127.0.0.1 at 2012-02-10 17:32:56 -0600
Processing by StoriesController#create as HTML
story"=>{"industry_id"=>"8", "user_id"=>"8"}, "category"=>{"category"=>"99"}, "commit"=>"Create Story"}
1 ответ
Я думаю, что вам нужно изменить параметры на collection_select
, Первый параметр - это название модели. Второй параметр - это имя атрибута модели, которому будет присвоено значение. Четвертый параметр - это метод Category
объект для использования в качестве текстового значения опции выбора.
Я считаю, что это должно выглядеть так:
<%= collection_select(:story , :category_id, Category.all , :id, :name, {:prompt => 'Select Category...'}) %>
Вы также можете посмотреть на вложенные атрибуты ActiveRecord.