Столкнулся с ошибкой ActionDispatch::Cookies::CookieOverflow
. Оказалось что по дефолту сессия хранится в cookies и, соответственно, максимальный размер данных в сессии не может превышать 4 килобайт.
Чтобы получить возможность хранить в сессии больше данных, нужно изменить хранилище. Подходящий вариант - это хранить сессии в базе. Что для этого нужно сделать:
Добавляем в Gemfile
gem 'activerecord-session_store', github: 'rails/activerecord-session_store'
Затем в консоли запускаем
rails generate active_record:session_migration
rake db:migrate
После этого в файле config/initializers/session_store.rb
указываем где хранить сессию:
Foo::Application.config.session_store :active_record_store