私はいくつかのチェックボックスがあるフォームを持っています。ここでチェックボックスは製品のカテゴリです。Ruby on Rails 5:フォームを提出するときに配列の代わりにハッシュを取得しています
製品は1つまたは複数のカテゴリに属することができ、カテゴリには1つまたは複数の製品を含めることができます。
私はにhas_manyを使用しています。組合を通じてルビーにレール5
に私はこれらのcheck_boxesでフォームを送信する場合:
<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
ありがとう!
あなたに "[category_ids] []製品" 余分なスペースなしであなたのRailsのフォームのチェックボックス構文
アップデートには、余分なスペースを削除してくださいコードが正常に見えます。[] – sa77
THANKS !!!の後ろに、余分なスペースを取り除いてみてください ""製品[category_ids] [] "'問題を解決したありがとう、あなたの答えをstackoverflowであなたに報酬を与えることができますか? –
クール..これを回答として追加します – sa77