我曾尝试在devise的初始化程序中设置基于用户名的身份验证;但事实证明,此时需要的工作量比我愿意投入到这个应用程序中还要多,因为它只是为了解决这个问题。因此,我最初使用config.authentication_keys = [ :username ]
,在其他配置设置中,我将它们全部更改回:email
。
问题是,现在当我尝试登录时,我现在收到以下错误:
NoMethodError in Devise::SessionsController#create
undefined method `email' for #<ActionDispatch::Request:0xrequestid>
我怀疑这与我最初涉及基于用户名的身份验证有关,但我无法告诉我现在需要解决的实际问题/剩余配置在哪里,因为我非常新到Rails。
我非常乐意提供您为其命名的任何日志/配置。我不知道此时会有什么帮助。
答案 0 :(得分:1)
您的用户模型中是否有:电子邮件字段?看起来Devise在您登录时尝试获取电子邮件值并且失败了。
答案 1 :(得分:0)
好的事实证明,当我将它们更改回config.authentication_keys
(默认值)时,我不应该指定config.request_keys
和[:email]
。无论出于何种原因(我还不知道),这要求我指定强参数,如果我只是将这些行注释掉,那么这些参数与指定的相同。
因此,如果使用默认值,则简单的解决方案是不指定内容。