

railsで  
userある決まった商品のなかからどの商品を扱うかを決めて、その商品に値段をつけるとします。  
モデルは

userモデル・user_product_categoryモデル・product_categoryモデル

という３つのモデルが有り、user_product_categoryモデルはpriceというカラムを持っています。

そしてuser_product_categoryコントローラのcreateではproduct_categoryモデルの一覧があり、そこにチェックボックスをつけて値段を入れるとユーザープロフィールページに表示されるようにしたいです。

条件としては  
1・どの商品を取り扱うか、取り扱わないかをユーザープロフィール編集ページではない１ページで更新したい。（中間テーブルのみを一括更新したい。）

２・値段もそのページで変更可能にしたい。

この時どのようにformを作ったりコントローラを書けばよいでしょうか。

調べて、

[code]

    <% ProductCategory.all.each do |product_category| %>
    <%= check_box_tag "user[product_category_ids][]", product_category.ids, f.object.product_categories.include?(product_category) %>
    
[/code]

とやることでチェックボックスがついたものだけparamsに入れられるのはわかってきたのですが、これだと複数一括で登録する場合バリデーションが一括出できない気がして・・・  
また、ユーザーモデルとひも付けて

[code]

    def user_params
          params.require(:user).permit(:name,{product_category: [] })
    end
    
[/code]

でユーザーごとsaveすればいいとも書いてあったのですが、これだとpriceカラムをどのように入れればいいのかわからないというのがありまして・・・

何解決策はないか教えて下さい。お願いします。


CC BY-SA 3.0
2017-03-06T16:55:32.357
33147
2017-03-07T01:54:23.777
2017-03-07T01:54:23.777
49
20825
question
ruby-on-rails ruby
Railsで多対多モデルの中間テーブルを一括登録・編集したい