通过关联模型中的form.collection_check_boxes传递ID

时间:2019-03-20 23:21:33

标签: ruby-on-rails ruby

问题:产品型号ID不会输入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,但ID不会通过。

输入错误如下:

Couldn't find Product without an ID

型号:

UserProduct:

  has_and_belongs_to_many :products

产品:

....
  has_and_belongs_to_many :user_products
....

据我了解,这不能是嵌套的资源,因为UserProduct模型应该从Product模型中挑选产品,然后附加到UserProducts上。因此,基本上,App上有可用的产品列表,然后用户可以从这些产品中进行选择,以输入其UserProduct模型。

我的代码有什么问题吗?如何通过选择下拉菜单中的ID进行传递?

1 个答案:

答案 0 :(得分:0)

collection_check_boxes传递ID数组。如果只需要一个,请尝试使用collection_select