在 rails 中允许具有强参数的数组数组

Permitting array of arrays with strong parameters in rails

我到处搜索,但有谁知道是否可以在 rails 中允许使用强参数的数组?我的代码如下所示:

params.require(:resource).permit(:foo, :bar => [[:baz, :bend]])

这给了我:

ArgumentError (wrong number of arguments (0 for 1..2))

我也试过:

params.require(:resource).permit(:foo, :bar => [[]])
params.require(:resource).permit(:foo, :bar => [][])
params.require(:resource).permit(:foo, :bar => [])

但是这些都是给我invalid parameter错误或者不处理参数。

在此先感谢您的帮助

这是一个取自 rails strong parameter Github page 的例子:

params.permit(:name, {:emails => []}, :friends => [ :name, { :family => [ :name ], :hobbies => [] }])

看着 code 我认为这是不可能的。你必须把第二层弄平。

 def permit(*filters)
  params = self.class.new

  filters.each do |filter|
    case filter
    when Symbol, String
      permitted_scalar_filter(params, filter)
    when Hash then
      hash_filter(params, filter)
    end
  end

  unpermitted_parameters!(params) if self.class.action_on_unpermitted_parameters

  params.permit!
end