Sometimes in your Rails app you want a user to begin an action, log in, then complete the action. You smash their params into the session, let the user log in, then pull their params out of the session when the login is successful. END SESSION STORE ABUSE! A better way is to have the login form resubmit the params.
Add this to your Gemfile:
gem "hash_to_hidden_fields"
Filter the params you want to save and turn them into hidden fields in your form:
<%= hash_to_hidden_fields(@params_to_save) %>
When the form is submitted, all the old params will come through! Nested arrays and nested hashes are all preserved.
Help make it better!
Find a problem? Open an issue. Or, even better, code it yourself and send a pull request:
# fork it on github, then clone:
git clone git@github.com:your_username/hash_to_hidden_fields.git
bundle install
rspec
# hack away
git push
# then make a pull request
License
Public domain; no restrictions.