2017-02-18 81 views
0

這個方法完全符合我的要求(返回params散列的副本,減去一對),但它看起來有點冗長。是否有更簡潔的實現?有沒有更有效的方式來操縱這個散列?

def strip_some_params 
    params_copy = params.clone 
    params_copy.delete(:param1) 
    params_copy.delete(:param2) 
    params_copy 
end 

回答

3

的ActiveSupport已經except

params.except(:param1, :param2) 

這有效地做了你正在做的(通過迭代和刪除)同樣的事情,但你的代碼變得更優雅。

+0

這正是我正在尋找的。 :) –

2

總是有Hash#reject

def strip_some_params(params) 
    params.reject{|key, _| [:param1, :param2].include? key} 
end 
相關問題