在登录时设计不填充resource.errors

时间:2012-04-02 03:01:17

标签: ruby-on-rails devise

我正在使用Devise gem并且在登录页面中我希望,如果我不写任何东西,它应该给我一个错误。起初我以为我没有显示错误,但在这之后:

<%= resource.errors.inspect %&GT;

在完成没有任何值的登录后,我得到以下内容:

#<ActiveModel::Errors:0x000000048ac1a0 @base=#<User id: nil, email: "", encrypted_password: "", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: nil, updated_at: nil>, @messages={}>

根本没有消息。

我没有修改默认的Devise模型或视图,所以这很奇怪,因为在注册并忘记密码时我会正确地得到错误。

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

在Flash哈希中设置登录的设计错误消息。尝试在应用布局中添加此内容:

<%- flash.each do |name, msg| -%>
  <%= content_tag :div, msg, :id => "flash_#{name}" if msg.is_a?(String) %>
<%- end -%>

答案 1 :(得分:0)

更方便的方法是<%= devise_error_messages! %>documentation here