使用Authlogic时出现undefined method 'valid_password?'错误

8
我在使用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'

无法解决突然出现的问题?有没有人知道这个问题,如果知道请帮忙解决?


我也遇到了同样的问题。如果你找到解决方法,请回报一下。 - James
确保您的模型正在使用 acts_as_authentic... 您是否重新启动了应用程序服务器? - Abdul Baig
1个回答

4
如果在数据库可用之前启动Web服务器(例如,在我的情况下是Thin),我会遇到这个错误。我在浏览器中加载应用程序,发现MySQL未运行,所以我启动了MySQL并返回应用程序。现在应用程序可以正确加载,但无法让我登录(我得到了OP描述的错误)。如果我重新启动Web服务器并再试一次,就可以无错误地登录。很可能valid_password?是在引导时添加到模型的方法,并且依赖于数据库的可用性。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接