Мені часто доводиться писати таке:
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#except!
але Hash#except
це шлях, який потрібно пройти (не возитися з цим params
!). Як правило, не возиться з будь-яким об'єктом на місці, якщо це абсолютно не потрібно, побічні ефекти можуть мати несподівані результати.