更改了设计初始化程序,现在身份验证已中断

时间:2014-07-03 23:05:45

标签: ruby-on-rails devise initializer

我曾尝试在devise的初始化程序中设置基于用户名的身份验证;但事实证明,此时需要的工作量比我愿意投入到这个应用程序中还要多,因为它只是为了解决这个问题。因此,我最初使用config.authentication_keys = [ :username ],在其他配置设置中,我将它们全部更改回:email

问题是,现在当我尝试登录时,我现在收到以下错误:

NoMethodError in Devise::SessionsController#create
undefined method `email' for #<ActionDispatch::Request:0xrequestid>

我怀疑这与我最初涉及基于用户名的身份验证有关,但我无法告诉我现在需要解决的实际问题/剩余配置在哪里,因为我非常新到Rails。

我非常乐意提供您为其命名的任何日志/配置。我不知道此时会有什么帮助。

2 个答案:

答案 0 :(得分:1)

您的用户模型中是否有:电子邮件字段?看起来Devise在您登录时尝试获取电子邮件值并且失败了。

答案 1 :(得分:0)

好的事实证明,当我将它们更改回config.authentication_keys(默认值)时,我不应该指定config.request_keys[:email]。无论出于何种原因(我还不知道),这要求我指定强参数,如果我只是将这些行注释掉,那么这些参数与指定的相同。

因此,如果使用默认值,则简单的解决方案是不指定内容。

相关问题