我正在尝试将 Rails 应用程序从一台服务器迁移到另一台服务器。该应用程序在当前服务器上运行良好。我设置了目标服务器,安装了 ruby、rails 和 postgres。然后我将源服务器中的代码打包并在目标服务器上解压缩。我运行了 bundle install 和 rake db:setup。
我可以运行 rails 控制台并查看种子文件中的对象并与它们进行交互。我可以运行 rails server 并连接到应用程序。但是当我对应用程序进行身份验证时,我会被重定向到要求我再次进行身份验证的页面。
我确定我输入了正确的密码。如果我故意输入错误的密码,我将返回到我所在的同一登录页面。如果我使用正确的凭据登录,我将被重定向到另一个页面,告诉我我需要进行身份验证。在对问题进行故障排除时,我在生产环境中提高了日志记录级别。当我使用正确的凭据登录时,我可以看到数据库查询,它会更新 User 对象以反映另一个成功登录和最后一次成功登录的日期作为当前时间。
AREL (0.3ms) UPDATE "users" SET "sign_in_count" = 3, "updated_at" = '2013-01-03
00:45:19.787483', "current_sign_in_at" = '2013-01-03 00:45:19.786763', "last_sign_in_at"
= '2013-01-02 22:56:39.395815' WHERE "users"."id" = 1
SQL (0.4ms) COMMIT
我还修改了重定向到的页面上的代码,以便在 user_signed_in 时显示“没有用户登录”字样?返回假。我每次都看到。这意味着正在输入正确的用户名和密码,但由于某种原因未创建会话。
但就像我说的,这段代码在另一台服务器上运行良好。是否有一些我可能忽略的设置步骤?
进一步调查显示,该问题似乎只在生产模式中表现出来。在开发中运行应用程序按预期工作。