【发布时间】:2017-08-02 21:41:26
【问题描述】:
我有一个带有多个复选框的表单,其中的复选框是产品的类别。
一个产品可以属于一个或多个类别,一个类别可以有一个或多个产品。
我在 ruby on rails 5 中使用 has_many :through 关联
当我提交带有这些复选框的表单时:
<div class="field">
<h5>Category</h5>
<% Category.all.each do |c| %>
<%= check_box_tag "product[category_ids][] ", c.id, product.category_ids.include?(c.id) %>
<%= c.name %> <br/>
<% end %>
这是作为参数传递的:
"product"=>{"name"=>"Pencil", "category_ids"=>[{" "=>"1"}, {" "=>"2"}]}
但我真正需要的是这样的:
"product"=>{"name"=>"Pencil", "category_ids"=>["1", "2"]}
我需要一个数组而不是哈希数组。
我怎样才能得到那个数组?
这是我的产品控制器中的主要内容:
def create
@product = Product.new(product_params)
respond_to do |format|
if @product.save
format.html { redirect_to @product, notice: 'Product was successfully created.' }
else
format.html { render :new }
end
end
end
def product_params
params.require(:product).permit!
end
感谢您的帮助!
【问题讨论】:
-
您的代码看起来不错.. 尝试在 [] 之后删除多余的空间
"product[category_ids][] " -
谢谢!!!解决了这个问题。谢谢你,我如何在stackoverflow中奖励你的回答?
-
酷..我会添加这个作为答案
标签: ruby-on-rails ruby ruby-on-rails-5