【问题标题】:Permitting array of arrays with strong parameters in rails允许在 rails 中使用强参数的数组数组
【发布时间】:2015-06-22 15:55:20
【问题描述】:

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

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

这是给我的:

ArgumentError(参数数量错误(0 代表 1..2))

我也试过了:

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

但是这些都给我无效的参数错误或不处理参数。

提前感谢您的帮助

【问题讨论】:

    标签: ruby-on-rails arrays strong-parameters


    【解决方案1】:

    看着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
    

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我不认为该示例是一个数组数组,它​​看起来是一个带有哈希的数组,然后是该哈希中的一个数组。我会使用哈希数组,但是我不能这样做,因为键可以与我的项目的当前设置相同
    猜你喜欢
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 2013-05-09
    相关资源
    最近更新 更多