无法使用带 Rails 4 的生产设备登录

Cannot login using devise in production w/ Rails 4

我已经设计好并在我的本地主机上完美运行。一旦我将它推送到服务器并设置为生产环境(apache/passanger),我就无法登录。但是我可以在服务器上使用生产 webrick 登录。

如果我输入错误的密码,我会得到一个错误的密码错误。当我使用正确的密码时,我重定向到登录重定向页面,但我没有登录。

我正在使用活动记录会话,不确定这是否与问题有关。

正如我在登录后更新当前用户统计信息的日志中所见,登录成功,但是当新页面加载时 user_signed_in? returns 错误。

这是我在日志中看到的供参考的查询:

SQL (0.3ms)  UPDATE "users" SET "current_sign_in_at" = , "last_sign_in_at" = , "sign_in_count" = , "updated_at" =  WHERE "users"."id" = 1  [["current_sign_in_at", "2015-01-03 19:34:11.930934"], ["last_sign_in_at", "2015-01-03 19:29:33.496977"], ["sign_in_count", 18], ["updated_at", "2015-01-03 19:34:11.931889"]]

更新: 我遇到了这个对其他人有用的可能解决方案: 在 config/initializers/devise.rb 中设置 config.http_authenticatable = false。以防止 HTTP Auth 受到 Apache 的干扰。这并没有解决我的问题。

更新 2:我在某处读到这可能是由 apache 配置问题引起的,其他人可以通过切换到 nginx 来修复它。对我来说很有意义,因为 webrick 即使在生产模式下也能正常工作。我做了切换,但仍然有同样的问题。

如有任何帮助,我们将不胜感激。我也会继续研究。

以下是为我修复的问题:

我是 运行 ruby-2.0.0-p195 我升级到 ruby-2.2.0

不知道为什么会这样,但确实如此。希望这对其他人有帮助。此外,如果您遇到类似问题,请查看我在更新中执行的故障排除步骤。也许这对您也有帮助。