devise_error_messages中出现Devise Password Reset错误消息,但不闪烁?

问题描述

| 在我的Rails 3应用程序中,我使用了devise。对于密码重置表格,我有
<%= form_for(resource,:as => resource_name,:url => password_path(resource_name),:html => { :method => :put }) do |f| %>
    <%= devise_error_messages! %>
    <%= f.hidden_field :reset_password_token %>
    ......
我想删除devise_error_message并坚持使用rails flash,但是由于错误未发送到flash而无法正常工作?
<% flash.each do |key,value| %>
<div id=\"message-drawer\">
    <div class=\"message error\">
        <div class=\"message-inside\"><span><%= value %></span>
        </div>
    </div>
</div>
<% end %>   
闪光灯是空的?为什么?谢谢     

解决方法

flash为空,因为这些是使用辅助方法devise_error_message打印的模型验证错误消息! 。您始终可以覆盖它: https://github.com/plataformatec/devise/blob/master/app/helpers/devise_helper.rb 但是通过I18n文件来自定义与设计相关的消息要容易得多:
config/locales/devise.en.yml
    ,默认情况下,devise仅使用Flash消息进行登录和注销。下次重新加载时,所有表格错误都将与表格内联打印。考虑修改控制器以生成适当的闪存消息。