我正在使用Devise gem,当有人要求输入新密码(如果忘记)时,我只想显示一条成功的消息。目前,在提交时,按钮会重定向到sign_in,而不会显示任何消息。
谢谢
答案 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">×</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"
| ×
= 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
}