A menudo me encuentro escribiendo esto:
params.delete(:controller)
params.delete(:action)
params.delete(:other_key)
redirect_to my_path(params)
El rastro de eliminaciones no se siente bien y tampoco:
[:controller, :action, :other_key].each do |k|
params.delete(k)
end
¿Hay algo más simple y más limpio?
Hash#except!
pero Hash#except
es el camino a seguir (¡no se meta con params
!). Como regla general, no se meta con ningún objeto en su lugar a menos que sea absolutamente necesario, los efectos secundarios pueden tener resultados inesperados.