Costumo encontrar-me escrevendo isso:
params.delete(:controller)
params.delete(:action)
params.delete(:other_key)
redirect_to my_path(params)
A trilha de exclusões não parece certa e nem:
[:controller, :action, :other_key].each do |k|
params.delete(k)
end
Existe algo mais simples e limpo?
Hash#except!
mas Hash#except
é o caminho a seguir (não mexa params
!). Como regra geral, não mexa com nenhum objeto no local, a menos que seja absolutamente necessário, os efeitos colaterais podem ter resultados inesperados.