:user} given)-6ren"> :user} given)-我已为我的用户模型配置了Devise。在过去的几天里,devise 对我来说工作得非常好。现在它也可以用于正确的电子邮件和密码。但问题是,当我输入错误的电子邮件或密码时,我会收到错误消息,而不是重定向-6ren">
gpt4 book ai didi

ruby-on-rails-4 - Rails 4 Devise 缺少插值参数 :authentication_keys in "Invalid %{authentication_keys} or password." ({:resource_name=>:user} given)

转载 作者:行者123 更新时间:2023-12-01 18:36:15 24 4
gpt4 key购买 nike

我已为我的用户模型配置了Devise。在过去的几天里,devise 对我来说工作得非常好。现在它也可以用于正确的电子邮件和密码。但问题是,当我输入错误的电子邮件或密码时,我会收到错误消息,而不是重定向到登录页面:

I18n::MissingInterpolationArgument at /users/sign_in missing interpolation argument :authentication_keys in "Invalid %{authentication_keys} or password." ({:resource_name=>:user} given)

我检查了我的 devise.rb 文件,config.authentication_keys = [ :email ] 行被注释。我真的不知道如何解决此错误并重定向到 devise 登录页面。

最佳答案

我使用了这个助手,也得到了这个错误(使用rails 5.2.1,devise 4.5.0)

应用程序/helpers/devise_helper.rb

  def devise_error_messages!
flash_alerts = []
error_key = 'errors.messages.not_saved'

if !flash.empty?
flash_alerts.push(flash[:error]) if flash[:error]
flash_alerts.push(flash[:alert]) if flash[:alert]
flash_alerts.push(flash[:notice]) if flash[:notice]
error_key = 'devise.failure.invalid'
end

return "" if resource.errors.empty? && flash_alerts.empty?
errors = resource.errors.empty? ? flash_alerts : resource.errors.full_messages

messages = errors.map { |msg| content_tag(:li, msg) }.join
sentence = I18n.t(error_key, :count => errors.count,
:resource =>
resource.class.model_name.human.downcase)

html = <<-HTML
<div id="error_explanation">
<h2>#{sentence}</h2>
<ul>#{messages}</ul>
</div>
HTML

html.html_safe
end

我会看看处理翻译的行I18n.t或完全跳过助手作为解决方法

关于ruby-on-rails-4 - Rails 4 Devise 缺少插值参数 :authentication_keys in "Invalid %{authentication_keys} or password." ({:resource_name=>:user} given),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36905214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com