我们正在从 Ruby 1.9.3 升级到 Ruby 2,从 Rails 3.x 升级到 Rails4。 我们正在使用设备进行身份验证。我们根据 Ryan Bates Railscasts 升级了 gem。
现在,当我启动服务器时,我看到以下错误。
更新:这与 session cookie 有关,当我以隐身模式打开窗口时,我不会收到此错误,但我不希望我的用户收到此错误。
我正在使用 rbenv
→ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin12.0]
→ gem list rack
*** LOCAL GEMS ***
rack (1.5.2)
rack-test (0.6.2)
Processing by HomeController#index as HTML
Completed 500 Internal Server Error in 4ms
NoMethodError (undefined method `each_with_object' for #<String:0x007fe40519d368>):
actionpack (4.0.2) lib/action_dispatch/request/session.rb:175:in `stringify_keys'
actionpack (4.0.2) lib/action_dispatch/request/session.rb:170:in `load!'
actionpack (4.0.2) lib/action_dispatch/request/session.rb:160:in `load_for_read!'
actionpack (4.0.2) lib/action_dispatch/request/session.rb:86:in `[]'
warden (1.2.3) lib/warden/session_serializer.rb:30:in `fetch'
warden (1.2.3) lib/warden/proxy.rb:212:in `user'
最佳答案
尝试通过删除浏览器中的 cookie 来删除您的 session 。如果这有效,那么您需要使所有 session 无效,这样您的用户就不会崩溃。您可以通过更改 config/initializers/session_store.rb
secret_key_base
来完成此操作
关于ruby-on-rails - session cookie问题: undefined method `each_with_object' Upgrading to Rails 4 and Ruby 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21862717/