Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 更改了设计初始值设定项,现在身份验证已断开_Ruby On Rails_Devise_Initializer - Fatal编程技术网

Ruby on rails 更改了设计初始值设定项,现在身份验证已断开

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

首先,我尝试在Desive的初始化器中设置基于用户名的身份验证;但事实证明,这需要更多的工作,我不愿意在这个应用程序在这一刻投入,因为它只是为了混日子。因此,在我最初拥有
config.authentication\u keys=[:username]
的地方,在其他配置设置中,我将它们全部更改回
:email

但问题是,现在当我尝试登录时,会出现以下错误:

NoMethodError in Devise::SessionsController#create
undefined method `email' for #<ActionDispatch::Request:0xrequestid>
设计中的命名错误::会话控制器#创建 未定义的方法“email”# 我怀疑这与我最初尝试基于用户名的身份验证有关,但我不知道我现在需要解决的实际问题/剩余配置在哪里,因为我对Rails非常陌生


我非常乐意提供您所说的任何日志/配置/信息。我只是不知道在这一点上什么会有帮助。

您的用户模型中是否有:email字段?看起来Deviate在您登录时试图获取电子邮件值,但失败了。

好的,当我将其更改回
[:email]
(默认设置)时,我不应该指定
配置验证密钥和
配置请求密钥。无论出于什么原因(我还不知道),这需要我指定强参数,这与Desive在我只对这些行进行注释时所指定的相同


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

我在模式的用户表中有一个电子邮件字段,因为它是在创建迁移时生成的。