【问题标题】:Inconsistent validation alerts in devise设计中不一致的验证警报
【发布时间】:2013-04-03 16:25:28
【问题描述】:

我在让设计验证帮助程序在登录和注册时相同时遇到了一些问题。

当用户注册失败或错误填写忘记密码时,系统会显示设计错误通知。顶部的红色框带有一条消息,然后每个问题字段都以红色突出显示。这是期望的结果。

当用户错误地填写登录表单时,我会得到不同类型的验证。我没有以红色突出显示问题字段,而是收到了与设计语言环境文件相关联的标准 Flash 通知。

  devise:
    failure:
      invalid: 'Invalid email or password.

这里是视图:

- provide(:title, "Login")
.devise-form-box
  %h2 Login
  = simple_form_for(resource, :as => resource_name, :url => session_path(resource_name), :html => {:class => 'form-vertical' }) do |f|
    = f.error_notification
    = f.input :email, :autofocus => true, :placeholder => "Email Address"
    = f.input :password, :placeholder => "Password"
    = f.input :remember_me, :as => :boolean if devise_mapping.rememberable?
    .clearfix
    = f.button :submit, "Login", :class => 'btn-primary btn-medium'
  = render "devise/shared/links"

关于为什么登录表单不使用与注册或忘记密码相同的验证方法有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby authentication devise validation


    【解决方案1】:

    你没有这样的 html 元素来显示错误,你怎么能期望看到它们?

    简单的解决方法是在form_for下添加错误部分。

    <%= devise_error_messages! %>
    

    请参阅设计默认模板以供参考。

    如果您想进一步自定义错误消息,也很简单,您可以看到devise_error_message! 只是对错误消息的处理:https://github.com/plataformatec/devise/blob/master/app/helpers/devise_helper.rb。因此,您可以查看普通脚手架模板中的错误视图以供参考,以便在需要时对其进行改进。

    【讨论】:

    • HTML 也没有在其他视图中明确显示。我添加了您提出的建议,但仍然无法正常工作。还有其他想法吗?
    【解决方案2】:

    我错了。登录表单不应突出显示注册表单等错误字段。

    【讨论】:

    • 我认为你是对的。最好在登录时显示模糊的消息。
    • 不,只是没有内置到设计中。
    猜你喜欢
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    相关资源
    最近更新 更多