我的 rails 3.2.18 应用程序刚开始遇到一个相当奇怪的问题
我正在使用 Railscasts 上描述的 cookie 身份验证。在过去的一年里(直到我升级到 3.2.18)一切都很好。
但是我现在有以下问题。我可以成功登录,并导航到几页。但是,在未确定数量的页面点击后,我收到 500 个内部页面错误。在我的生产日志中,我看到以下错误(我更改了实际的令牌代码)
ActiveRecord::RecordNotFound (Couldn't find User with auth_token = XXXXXXXXXXXXXX):
app/controllers/application_controller.rb:28:in `current_user'
当我查看该用户的数据库条目时,我看到了正确的 auth_token 条目。应用程序控制器中引用的代码行是
@current_user ||= User.find_by_auth_token!(cookies[:auth_token]) if cookies[:auth_token]
所以是的,需要用 where 而不是 find_by 语句来替换它,以便在 Rails 4 中工作,但是我认为这不应该导致问题,初始身份验证和几页也很奇怪点击工作,然后它不起作用。
为了能够再次登录,我必须关闭浏览器会话(我在 firefox、safari 和 IE 上都有相同的会话),然后重新启动,我可以登录一段时间。
另外我在开发中没有这个问题,只有在生产中