获取未定义方法'valid_password?'的错误 与Authlogic

chi*_*eng 8 ruby-on-rails authlogic

我使用Authlogic在服务器上突然出现以下错误

NoMethodError (undefined method `valid_password?' for #<ProductionHouse:0xb53859cc>):

authlogic (2.1.3) [v] lib/authlogic/session/password.rb:191:in `send'

authlogic (2.1.3) [v] lib/authlogic/session/password.rb:191:in `validate_by_password'

authlogic (2.1.3) [v] lib/authlogic/session/callbacks.rb:72:in `validate'

authlogic (2.1.3) [v] lib/authlogic/session/validation.rb:64:in `valid?'

authlogic (2.1.3) [v] lib/authlogic/session/existence.rb:65:in `save'

app/controllers/user_session_controller.rb:162:in `create'

pdfkit (0.5.1) lib/pdfkit/middleware.rb:16:in `call'
Run Code Online (Sandbox Code Playgroud)

不能突然发生这个问题吗?有没有人知道这个,请帮忙吗?

Mik*_*itt 4

如果我在数据库可用之前启动 Web 服务器(在我的例子中为 Thin)(例如在我的例子中 MySQL 没有运行),我会收到此错误。

我在浏览器中加载应用程序,它抱怨 MySQL 没有运行,所以我启动 MySQL,返回到现在正确加载的应用程序,但不允许我登录(我收到 OP 描述的错误)。

如果我现在重新启动 Web 服务器,然后重试,我就可以毫无错误地登录。

大概valid_password?是在启动时添加到模型中的一种方法,并且依赖于可用的数据库。