Ruby on rails 更改了设计初始值设定项,现在身份验证已断开
首先,我尝试在Desive的初始化器中设置基于用户名的身份验证;但事实证明,这需要更多的工作,我不愿意在这个应用程序在这一刻投入,因为它只是为了混日子。因此,在我最初拥有Ruby on rails 更改了设计初始值设定项,现在身份验证已断开,ruby-on-rails,devise,initializer,Ruby On Rails,Devise,Initializer,首先,我尝试在Desive的初始化器中设置基于用户名的身份验证;但事实证明,这需要更多的工作,我不愿意在这个应用程序在这一刻投入,因为它只是为了混日子。因此,在我最初拥有config.authentication\u keys=[:username]的地方,在其他配置设置中,我将它们全部更改回:email 但问题是,现在当我尝试登录时,会出现以下错误: NoMethodError in Devise::SessionsController#create undefined method `ema
config.authentication\u keys=[:username]
的地方,在其他配置设置中,我将它们全部更改回:email
但问题是,现在当我尝试登录时,会出现以下错误:
NoMethodError in Devise::SessionsController#create
undefined method `email' for #<ActionDispatch::Request:0xrequestid>
设计中的命名错误::会话控制器#创建
未定义的方法“email”#
我怀疑这与我最初尝试基于用户名的身份验证有关,但我不知道我现在需要解决的实际问题/剩余配置在哪里,因为我对Rails非常陌生
我非常乐意提供您所说的任何日志/配置/信息。我只是不知道在这一点上什么会有帮助。您的用户模型中是否有:email字段?看起来Deviate在您登录时试图获取电子邮件值,但失败了。好的,当我将其更改回
[:email]
(默认设置)时,我不应该指定配置验证密钥和配置请求密钥。无论出于什么原因(我还不知道),这需要我指定强参数,这与Desive在我只对这些行进行注释时所指定的相同
因此,简单的解决方案是,如果使用默认值,则不指定任何内容。我在模式的用户表中有一个电子邮件字段,因为它是在创建迁移时生成的。