Rails枚举类型的强参数

时间:2014-02-23 09:35:20

标签: ruby-on-rails ruby

我有通过以下形式发送的参数:

{ "mac"=>{"0"=>["111", "222"], "1"=>["333", "444"]} }

我怎样才能以正确的方式允许它们,因为我发现了一个丑陋的解决方案:

params.permit(mac: Hash[(0..100).map { |i| [i.to_s, []] }])

2 个答案:

答案 0 :(得分:0)

你会考虑hash的keep_if方法,因为params只是一个哈希值。

params[:mac].keep_if {|k, v| k.to_i >= 0 and k.to_i <= 100}

答案 1 :(得分:0)

:mac键中取出密钥,然后允许它们。

mac_keys = params.fetch(:mac, {}).keys
params.permit(mac: mac_keys)