Rails 4 collection_check_boxes,带有has_many through

时间:2014-07-30 22:50:08

标签: ruby-on-rails has-many-through checkboxlist categorization

我试图将类别与产品相关联。 我到目前为止实现它的方式是

Class Product
    has_many :categorizations
    has_many :categories, through: :categorizations

Class Categorization
    belongs_to :product
    belongs_to :category

Class Category
    has_many :categorizations
    has_many :products, through: :categorizations

在我的产品/ _form.html.erb

<div class="field">
<%= f.label :category_id %><br />
<%= collection_check_boxes(:product, :category_id, Category.all, :id, :name) %>
</div>

我不确定如何正确地做到这一点。

解决方案
更改::category_id:category_ids并设置强参数

def product_params
  params.require(:product).permit(:title, :description, :price, :category_ids => [])
end

1 个答案:

答案 0 :(得分:6)

由于这种关系是多对多的,因此给定的产品应该回复category_ids(复数),而不是category_id(单数)。