2017-08-02 1 views
0

私はいくつかのチェックボックスがあるフォームを持っています。ここでチェックボックスは製品のカテゴリです。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 

ありがとう!

+2

あなたに "[category_ids] []製品" 余分なスペースなしであなたのRailsのフォームのチェックボックス構文

アップデートには、余分なスペースを削除してくださいコードが正常に見えます。[] – sa77

+0

THANKS !!!の後ろに、余分なスペースを取り除いてみてください ""製品[category_ids] [] "'問題を解決したありがとう、あなたの答えをstackoverflowであなたに報酬を与えることができますか? –

+0

クール..これを回答として追加します – sa77

答えて

0

は "製品[category_ids] []"

<%= check_box_tag "product[category_ids][]", c.id, product.category_ids.include?(c.id) %> 
+0

ありがとうございます!問題を解決したありがとうございました –

関連する問題