Rails 4,Devise - 登录时的错误消息无法正常工作

Web*_*rit 6 ruby-on-rails devise

github上的一段代码:http://bit.ly/ZMSJXQ

1)登录时,如果出现以下情况,我不会收到任何错

  • db中不存在电子邮件
  • 密码为空
  • 密码错了

devise_error_messages!是空的,因为resource.errors是空的.看起来资源没有得到验证.为什么?


2)如果我跑,resource.valid?然后resource.errors返回:email=>["has already been taken"], :password=>["can't be blank"]

我收到错误消息,但它们不正确."已经使用电子邮件"登录时没有意义.为什么?

(注册,重置密码等工作正常.)

wnm*_*wnm 10

devise_error_messages!只是一个帮助返回格式化的列表resource.errors.但是有些设计失败消息是在rails的flash对象中设置的.在布局的某处,您应该渲染这些Flash消息:

<%- flash.each do |name, msg| -%>
  <%= content_tag :div, msg, id: "flash_#{name}" %>
<%- end -%>
Run Code Online (Sandbox Code Playgroud)