在 Heroku 执行 Postgresql 维护后设计登录在 RoR 应用程序中不起作用

问题描述 投票:0回答:1

我在 Heroku 中部署了我的 RoR 应用程序,使用 Devise 身份验证。一切正常,但 2 天前,我被告知将执行例行的 Postgresql 维护。

之后,我的用户无法登录应用程序。

应用程序运行正常,因为每个有用户验证异常的部分都按应有的方式显示。我已经检查了 Postgresql 中的数据库,并且它已连接,自从我创建新用户并练习创建新用户以来,并且在我检查控制台时工作正常。

但是Heroku Logs显示错误,我不明白,Heroku的官方回答是维护不是问题,因为他们只是改变了DB的服务器,没有别的,我应该检查解决方案在这里。

我一直在阅读其他 SO 的帖子,他们建议 ENV var 可能有变化,但我检查了 CLI 和仪表板,它们是一致的。

我不明白错误或我该如何解决。请帮助。

我发现问题从这里开始“2023-03-01T17:52:29.666252+00:00 app[web.1]: [3dc02649-ca11-474b-bcb7-d08223602e58] NoMethodError(未定义方法‘空?’对于#

我不知道那个未定义的方法是“空的”?指的是,因为我已经几个月没有接触任何与 Devise 或用户数据库相关的东西了。

只接触到 Heroku 的支持,但他们说这超出了他们的范围。

我已经检查了用户的数据库配置和设计验证,没有任何改变。

Heroku 错误日志(jpg 格式)

编辑

我再次通过 Heroku 进入 Rails 控制台,我看到创建了一个新用户,并且在类别列中它给出了它应该的东西,正如你看到的模式它应该是类别:“Estándar”,但它给出了“ Est\xC3\xA1ndar”。我发布了两个截图

编辑日志作为文本

2023-03-01T21:44:34.378516+00:00 heroku[路由器]: at=info method=POST path="/users/sign_in" host=app.orbochile.com request_id=ef17f39d-6b6c-4d7b-8d8e- 9d278b175157 fwd="138.84.33.192" dyno=web.1 connect=0ms service=282ms status=500 bytes=1861 protocol=https 2023-03-01T21:44:34.365860+00:00 app[web.1]: I, [2023-03-01T21:44:34.365800 #2] 信息 -- : [ef17f39d-6b6c-4d7b-8d8e-9d278b175157]已完成 201 在 267 毫秒内创建(视图:0.1 毫秒 | ActiveRecord:6.0 毫秒 | 分配:2879) 2023-03-01T21:44:34.377567+00:00 app[web.1]: F, [2023-03-01T21:44:34.377503 #2] 致命——: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157]
2023-03-01T21:44:34.377569+00:00 app[web.1]: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157] NoMethodError (undefined method

empty?' for #<User id: 1, email: "[email protected]", name: "Ignacio", nick_name: "aiem2", phone: "56981855165", city: "Panquehue", state: "Valparaíso", dob: "1986-01-16", gender: "Masculino", admin: true, created_at: "2022-06-07 12:43:16.877117000 -0400", updated_at: "2023-03-01 18:44:34.357227000 -0300", category: "Colaborador", age: 37, ages: "35 a 44", last_name: "Espinosa", superadmin: true, tester: false, type_user: "Superadministrador">): 2023-03-01T21:44:34.377570+00:00 app[web.1]: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157]    2023-03-01T21:44:34.377572+00:00 app[web.1]: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157] activemodel (7.0.3.1) lib/active_model/attribute_methods.rb:458:in 
method_missing' 2023-03-01T21:44:34.377573+00:00 app[web.1]: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157] 机架 (2.2.6.2) lib/rack/etag.rb:71:in
block in digest_body' 2023-03-01T21:44:34.377573+00:00 app[web.1]: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157] actionpack (7.0.3.1) lib/action_dispatch/http/response.rb:146:in  
每个' 2023-03-01T21:44:34.377574+00:00 app[web.1]: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157] actionpack (7.0.3.1) lib/action_dispatch/http/response.rb:146:in
each_chunk' 2023-03-01T21:44:34.377574+00:00 app[web.1]: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157] actionpack (7.0.3.1) lib/action_dispatch/http/response.rb:128:in 
每个' 2023-03-01T21:44:34.377574+00:00 app[web.1]: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157] actionpack (7.0.3.1) lib/action_dispatch/http/response.rb:76:in
each' 2023-03-01T21:44:34.377575+00:00 app[web.1]: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157] actionpack (7.0.3.1) lib/action_dispatch/http/response.rb:481:in 
每个' 2023-03-01T21:44:34.377575+00:00 app[web.1]: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157] 机架 (2.2.6.2) lib/rack/body_proxy.rb:41:in
method_missing' 2023-03-01T21:44:34.377576+00:00 app[web.1]: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157] rack (2.2.6.2) lib/rack/etag.rb:69:in  
digest_body' 2023-03-01T21:44:34.377576+00:00 app[web.1]: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157] 机架 (2.2.6.2) lib/rack/etag.rb:33:in
call' 2023-03-01T21:44:34.377576+00:00 app[web.1]: [ef17f39d-6b6c-4d7b-8d8e-9d278b175157] rack (2.2.6.2) lib/rack/conditional_get.rb:40:in  
呼叫'

编辑

这听起来可能是个疯狂的想法,但我创建了一个空的?我的用户模型中的方法,并将其推送到 Heroku。

还是不行,但是现在 MissingMethod 的错误信息是空的?没有出现,而是一条新的错误信息:

"2023-03-01T22:24:56.539181+00:00 heroku[路由器]: at=info method=POST path="/users/sign_in" host=app.orbochile.com request_id=574ab971-6fde-468d-9514 -7c441c1fdd2b fwd="138.84.33.192" dyno=web.1 connect=0ms service=264ms status=500 bytes=38 protocol=https 2023-03-01T22:24:56.528275+00:00 app[web.1]: I, [2023-03-01T22:24:56.528215 #2] 信息 -- : [574ab971-6fde-468d-9514-7c441c1fdd2b]完成 201 在 252 毫秒内创建(视图:0.2 毫秒 | ActiveRecord:3.8 毫秒 | 分配:2846) 2023-03-01T22:24:56.538037+00:00 app[web.1]: 2023-03-01 22:24:56 +0000 阅读:#>"

ruby-on-rails postgresql heroku devise
1个回答
0
投票

我在发布的日志中看到的第一个错误是:

NoMethodError (undefined method `empty?' for #<User: ...

所以这显然是您的代码中的一个错误,因为您在 User 实例上调用方法

empty?
并且该方法未定义):

> User.last.empty?
=> NoMethodError (undefined method `empty?' for #<User:0x0000000123a1a5d0>)

也许那是你过去添加的东西,但从现在开始就没有部署过它……或者可能是一个没有重启你的工人的“坏”部署?

我将从检查代码中的所有

.empty?
调用开始。

© www.soinside.com 2019 - 2024. All rights reserved.