ruby-on-rails - session cookie问题: undefined method `each_with_object' Upgrading to Rails 4 and Ruby 2

标签 ruby-on-rails ruby devise

我们正在从 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/

相关文章:

ruby-on-rails-3 - 设计 Backbone Heroku 和 require.js on Rails 配置

ruby-on-rails - 如何使用国家 gem

ruby-on-rails - Rails 3.1 + Heroku = worker 崩溃

javascript - 如何在 Rails 中安装 jschr 的 bootstrap-modal

ruby-on-rails - 如何编写和继承 ActionController::TestCase 的抽象子类

ruby - 如果在数组中找不到项目,则使用默认值

ruby-on-rails - Rails/Devise - 确定用户 session 何时到期

ruby-on-rails - 将设计身份验证合并到现有的用户结构中?

ruby-on-rails - Twilio 说我无权发送到我的 'To' 号码区域

ruby - 如何在 Ruby 中编码 lambda (Proc)?