为什么我使用HABTM Association获取未经许可的参数?

时间:2013-10-11 14:21:52

标签: ruby ruby-on-rails-4

我目前正在开始构建一个开源商店目录应用程序。

我通过FunShop模型加入了FunSubcategoryFunSubcategorization个模型并且has_many :through有关联。在FunShop表单中,我以这种方式添加了Subcategory个复选框。

<div class="field">
    <%= hidden_field_tag "fun_shop[fun_subcategory_ids][]", nil %>
    <% FunSubcategory.all.each do |category| %>
      <%= check_box_tag "fun_shop[fun_subcategory_ids][]", category.id, @fun_shop.fun_subcategory_ids.include?(category.id), id: dom_id(category) %>
      <%= label_tag dom_id(category), category.title %>
    <% end %>
</div>

当我提交表单时,会出现错误Unpermitted parameters: fun_subcategory_ids

我对强参数知之甚少,我怀疑它存在问题。 在我的FunShop控制器中,我有这个:

def fun_shop_params
  params.require(:fun_shop).permit(:fun_subcategory_ids)
end  #Most code ommited for simplicity

我也在我的FunShop模型中做到了这一点:

accepts_nested_attributes_for :fun_subcategorizations

My first web app有一个相关的存储库。

1 个答案:

答案 0 :(得分:13)

解决。

我需要补充一下:

params.require(:fun_shop).permit(fun_subcategory_ids: [])

指定它是一个数组。