我正在使用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模型或视图,所以这很奇怪,因为在注册并忘记密码时我会正确地得到错误。
有什么想法吗?
答案 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)