设备 - 请求新密码时成功发送消息

时间:2011-07-20 12:46:03

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

我正在使用Devise gem,当有人要求输入新密码(如果忘记)时,我只想显示一条成功的消息。目前,在提交时,按钮会重定向到sign_in,而不会显示任何消息。

谢谢

3 个答案:

答案 0 :(得分:1)

不是使用闪存并尝试通过扩展其控制器来解决Devise如何做(不是胆小的人)的事情,如何检查引用者,如果匹配你的'提醒,在视图中显示消息我的密码'路径?

在视图中:

<% if request.env['HTTP_REFERER'] == "/give/me/a/new/password" %>
  <h2>Your password stuff is all good now.</h2>
<% end %>

答案 1 :(得分:0)

flash [:success] =“Something Something”

答案 2 :(得分:0)

Devise推出自己的警报消息(可以在config/locales/devise.en.yml中编辑并为其他语言编写),你只需要抓住它们。

一种方法是添加layout/_messages部分:

<% flash.each do |name, msg| %>
  <% if msg.is_a?(String) %>
    <div class="alert alert-<%= name %>">
      <a class="close" data-dismiss="alert">&#215;</a>
      <%= content_tag :div, msg, :id => "flash_#{name}" %>
    </div>
  <% end %>
<% end %>

并在application.html.erb

中呈现
<%= render 'layouts/messages' %>

这样可以捕获所有(设计和其他)消息,并且可以很好地使用引导警报类(如果您使用的是使用引导程序)。

或者如果您使用slim

- flash.each do |name, msg|
  - if msg.is_a?(String)
    div class="alert alert-#{name}"
      a class="close" data-dismiss="alert"
        | &#215;
      = content_tag :div, msg, :id => "flash_#{name}"

= render 'layouts/messages'

设计使用the rails standard :notice rather than :success,但你可以{c} / scss add the success (green) styling(例如bootstrap_and_overriders.css.scss):

.alert-alert {
  @extend .alert-error
}
.alert-notice {
  @extend .alert-success
}