允许在rails中使用强参数的嵌套数组

时间:2015-09-01 06:39:42

标签: ruby-on-rails strong-parameters

这是我的ajax请求:

$.ajax({
url: "/menu_items",
method: "post",
data: {
    menu_items: [
        {"id":3,"content":"first"},
        {"id":4,"content":"first"},
        {"id":5,"content":"second"}
    ]
  }
})

我想在menu_items数组中允许idcontent, 我读了docs

所以我试试

params.require(:menu_items).permit({menu_items: [[:id, :content]]})

params.require(:menu_items).permit({menu_items: [:id, :content]})

但是没有用,所以我该怎么做?

更新:这是我的控制器:

class MenuItemsController < ApplicationController
  def create
    puts "----------------"
    puts menu_items_param
    puts "-----------"
  end

  private
  def menu_items_param
    params.require(:menu_items).permit(menu_items: [:id, :content])
  end
end

在控制台中,它会打印

Processing by MenuItemsController#create as */*
 Parameters: {"menu_items"=>{"0"=>{"id"=>"3", "content"=>"first"}, "1"=>{"id"=>"4", "content"=>"first"}, "2"=>{"id"=>"5", "content"=>"second"}}}
----------------
Unpermitted parameters: 0, 1, 2
{}
-----------

1 个答案:

答案 0 :(得分:1)

params.require(:menu_items).permit(:id, :content)

试试这个。