У меня есть модели Item и ItemCategory. Товар принадлежит_Категории товаров.
В форме элемента я хочу создать новую категорию элементов и назначить ее текущему элементу.
Итак, я добавил в форму:
<%= link_to '+', new_quick_category_path(item_id: @item.id), remote: true %>
Тогда на items_controller:
def new_quick_category
@item_category = ItemCategory.new
@item = Item.find(params[:item_id])
end
Я получаю тогда форму:
<%= simple_form_for (@item_category), html: { id: :item_category}, remote: true do |f| %>
<%= f.error_notification %>
<%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>
<h5> Name </h5>
<%= f.input :name, label: false %>
<%= f.button :submit, "Create", class: "btn btn-sm btn-success" %>
<% end %>
Теперь, чтобы обновить текущий элемент с помощью вновь созданной item_category, я предполагаю, что мне нужно сделать это для item_categories_controller:
def create
@item = Item.find(params[:item_id])
@item.update_attributes(item_category_id: @item_category.id)
....
end
Поэтому мне нужно передать параметр item_id, чтобы создать действие для item_categories_controller.
Решением, которое приходит мне в голову, было бы передать его кнопке создания в форме, например:
<%= f.button :submit, "Create"(item_id: @item.id), class: "btn btn-sm btn-success" %>
но это не работает.
Как я могу это сделать? Или я должен вместо этого сделать вложенную форму?