设计密码重置错误消息出现在devise_error_messages但不闪存?

时间:2011-05-26 17:52:40

标签: ruby-on-rails ruby-on-rails-3 devise

在我的rails 3应用程序中我使用设计。对于密码重置表单,我有:

<%= 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 %>   

闪光灯是空的?为什么?感谢

2 个答案:

答案 0 :(得分:1)

默认情况下,设计仅使用Flash消息进行登录和注销。任何表单错误都会在下次重新加载时与表单一起打印。考虑修改控制器以生成适当的闪存消息。

答案 1 :(得分:1)

flash为空,因为这些是模型验证错误消息,使用辅助方法devise_error_message打印! 。您可以随时覆盖它:
https://github.com/plataformatec/devise/blob/master/app/helpers/devise_helper.rb

但通过I18n文件自定义与设计相关的消息要容易得多:config/locales/devise.en.yml