2017-02-18 86 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 
相关问题