Ich schreibe oft Folgendes:
params.delete(:controller)
params.delete(:action)
params.delete(:other_key)
redirect_to my_path(params)
Die Spur der Löschungen fühlt sich nicht richtig an und auch nicht:
[:controller, :action, :other_key].each do |k|
params.delete(k)
end
Gibt es etwas einfacheres und saubereres?
Hash#except!
aber Hash#except
der richtige Weg ist (spielen Sie nicht mit params
!). Als Faustregel gilt, dass Sie mit keinem Objekt an Ort und Stelle herumspielen dürfen, es sei denn, dies ist unbedingt erforderlich. Die Nebenwirkungen können zu unerwarteten Ergebnissen führen.