Ruby on Rails: Delete multiple hash keys
I'm guessing you're unaware of the Hash#except method ActiveSupport adds to Hash.
It would allow your code to be simplified to:
redirect_to my_path(params.except(:controller, :action, :other_key))
Also, you wouldn't have to monkey patch, since the Rails team did it for you!
While using Hash#except
handles your problem, be aware that it introduces potential security issues. A good rule of thumb for handling any data from visitors is to use a whitelist approach. In this case, using Hash#slice
instead.
params.slice!(:param_to_keep_1, :param_to_keep_2)
redirect_to my_path(params)