Передача идентификатора через form.collection_check_boxes из связанной модели - PullRequest
1 голос
/ 21 марта 2019

Проблема: Идентификатор модели продукта не входит в модель UserProduct.

Контроллер:

Создание UserProduct:

def create
    @user_product = UserProduct.new(user_product_params)
    @product = Product.find(params[:product_id])
    @user_product.product_id = @product.id
.......

Форма:

<%= form.collection_check_boxes(:product_id, Product.all, :id, :sku) do |c| %>
  <%= c.label class:"form-check-inline" do %>
    <%= c.check_box + c.text %>
  <% end %>
<% end %>

Это показывает Products: sku на переднем конце, но идентификатор не проходит через.

Ошибка на входе следующая:

Couldn't find Product without an ID

Модели:

UserProduct:

  has_and_belongs_to_many :products

Продукт:

....
  has_and_belongs_to_many :user_products
....

На мой взгляд, это не может быть вложенный ресурс, потому что модель UserProduct должнавыберите продукты из модели Product, а затем прикрепите их к UserProducts.Таким образом, по сути, в приложении есть список продуктов, и затем пользователь может выбрать один из этих продуктов для ввода в свою модель UserProduct.

Что-то не так с моим кодом?Как мне пройти через идентификатор из выпадающего меню при выборе?

1 Ответ

0 голосов
/ 21 марта 2019

collection_check_boxes передает массив идентификаторов. Если вам нужен только один, попробуйте collection_select.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...