0

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

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

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

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

4

2 回答 2

1

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

简单的解决方案是在form_for.

<%= devise_error_messages! %>

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

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

于 2013-04-03T16:38:50.313 回答
0

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

于 2013-04-03T21:09:38.067 回答