DEVISE - успешное сообщение при запросе нового пароля - PullRequest
1 голос
/ 20 июля 2011

Я использую гем Devise, и я просто хотел бы показать успешное сообщение, когда кто-то просит новый пароль (если он забыт). В настоящее время при отправке кнопка перенаправляется на sign_in без каких-либо сообщений.

Спасибо

Ответы [ 3 ]

1 голос
/ 21 июля 2011

Вместо того, чтобы использовать вспышку и пытаться понять, как Devise делает свое дело (не для слабонервных), расширяя свои контроллеры, как насчет проверки реферера и отображения сообщения в представлении, если оно соответствует вашему напоминаниюпуть моего пароля?

По мнению:

<% if request.env['HTTP_REFERER'] == "/give/me/a/new/password" %>
  <h2>Your password stuff is all good now.</h2>
<% end %>
0 голосов
/ 25 апреля 2013

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'

.

Devise использует стандарт рельсов :notice вместо :success, но вы можете добавить успешный (зеленый) стиль к вашему css / scss (например, к bootstrap_and_overriders.css.scss) ):

.alert-alert {
  @extend .alert-error
}
.alert-notice {
  @extend .alert-success
}
0 голосов
/ 20 июля 2011

flash [: success] = "Нечто Нечто"

...