我经常发现自己写的:Ruby on Rails的:删除多个哈希键
params.delete(:controller)
params.delete(:action)
params.delete(:other_key)
redirect_to my_path(params)
删除的痕迹,感觉不对也不认为:
[:controller, :action, :other_key].each do |k|
params.delete(k)
end
有什么简单清洁器?
当我写道第二种方法感觉不正确时,我的意思是说考虑到Hash API的丰富性,我怀疑这里有一些方法或习惯用法已经存在,而猴子补丁不会,没有必要。但也许不是。非常感谢所有回答的人! – 2009-10-13 15:08:28
哈希#除了正是我正在寻找。我不记得这是一个Rails核心扩展,所以当我在Hash API中找不到它时我感到困惑。 – 2009-10-13 16:15:59
请注意,严格来说,答案是'Hash#except!',但'除了'哈希#'是要走的路(不要混淆'params'!)。作为一个经验法则,除非绝对需要,否则不要混淆任何对象,副作用可能会有意想不到的结果。 – tokland 2013-08-19 11:36:04