2014-02-23 56 views
0

我有它們由一​​種形式等發送paramerers:Rails的枚舉類型的強烈參數

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

我怎麼能允許他們以適當的方式,因爲我發現只是一個醜陋的解決方案:

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

回答

0

取鑰匙了:mac鍵,然後允許它們。

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

你會考慮hash的keep_if方法嗎?因爲params只是一個散列。

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