未允许的参数错误,而参数在控制器中的参数中指定

时间:2015-10-09 22:03:35

标签: ruby-on-rails parameters many-to-many

我有一个product模型,通过加入模型categorycategory_product模型有多对多的关联

我有一个产品/ new.html.slim

 =simple_form_for @product, html: { multipart: true } do |t|
        = t.error_notification
        div class="form-group"
          = t.input :name, label: 'Nom',equired: true, input_html: { class: 'form-control' }
        div class="form-group"
          = t.input :description, label: 'Description', required: true, input_html: { class: 'form-control' }
        div class="form-group"
          = t.input :price, label: 'Prix', required: true, input_html: { class: 'form-control' }
        div class="form-group"
          = t.input :weight, label: 'Poids', required: true, input_html: { class: 'form-control' }
        div class="form-group"
          = t.association :categories, as: :check_boxes, label: "Catégories"
        = t.button :submit, value: "Valider",  class: "btn-success marge-bas"

当我提交表单时,我收到以下错误:

found unpermitted parameter: category_ids

虽然在我的ProductController中我已经允许了category_ids:

 def product_params
    params.require(:product).permit(
      :category_ids,
      :name,
      :price,
      :description,
      :weight,
      :picture,
      :picture1,
      :picture2,
      :picture3,

    )
  end

当我检查params category_ids是一个字符串数组

"category_ids"=>["1", "2", "5", ""]

我做错了什么?

2 个答案:

答案 0 :(得分:1)

尝试将product_params重写为:

def product_params
  params.require(:product).permit(:name, ... :picture3, :category_ids => [])
end

category_ids设置为允许参数列表末尾的数组应解决此错误。

希望它有所帮助!

答案 1 :(得分:0)

在完成本书“Rails,Up And Running”并添加category_ids => []修复它时,我遇到了这个“未经许可的参数:category_ids”错误。谢谢Zoran!