有没有更有效的方法来操纵这个哈希?

时间:2017-02-18 02:23:23

标签: ruby-on-rails ruby

这个方法完全符合我的要求(返回params hash的副本,减去一对),但它似乎有点冗长。是否有更简洁的实施?

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

2 个答案:

答案 0 :(得分:3)

ActiveSupport有except

params.except(:param1, :param2)

这实际上做了你正在做的事情(迭代和删除),但你的代码变得更优雅。

答案 1 :(得分:2)

总是Hash#reject

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