210 Fixing 'uninitialized constant / undefined class/module ActionDispatch::Http::ParamsHashWithIndifferentAccess' when migrating away from Rails LTS

Posted Over 4 years ago. Visible to the public.

Rails 2.3 and 3.2 LTS use ActionDispatch::Http::ParamsHashWithIndifferentAccess to represent params hashes, similar to Rails 5's ActionController::Parameters.

If you serialize data in Rails LTS, then upgrade to other Rails versions (such as Rails 5) and then try to deserialize the data, you might run into an error

uninitialized constant ActionDispatch::Http::ParamsHashWithIndifferentAccess


undefined class/module ActionDispatch::Http::ParamsHashWithIndifferentAccess

To fix this, add the following line to an initializer in your Rails 5 app:

ActionDispatch::Http::ParamsHashWithIndifferentAccess = ActionController::Parameters

You can do this either temporarily in order to migrate all serialized data once, or keep it permanently.

Rails 4.2 LTS already does this for you (starting with Rails LTS).

Tobias Kraze
Last edit
Over 4 years ago
Tobias Kraze
Source code in this card is licensed under the MIT License.
Posted by Tobias Kraze to Rails LTS documentation (2018-11-16 09:47)