Je me retrouve souvent à écrire ceci:
params.delete(:controller)
params.delete(:action)
params.delete(:other_key)
redirect_to my_path(params)
La traînée de suppressions ne semble pas juste et non plus:
[:controller, :action, :other_key].each do |k|
params.delete(k)
end
Y a-t-il quelque chose de plus simple et de plus propre?
Hash#except!
mais Hash#except
c'est la voie à suivre (ne vous embêtez pas params
!). En règle générale, ne gâchez aucun objet en place à moins que cela ne soit absolument nécessaire, les effets secondaires peuvent avoir des résultats inattendus.