在application.html.erb中
<%= bootstrap_flash %>
在manuals_controller.rb
class ManualsController < ApplicationController def create respond_to do |format| format.html { redirect_to root_url,notice:'MyManual was successfully created.' } end end end
解决方法
以下是我如何使用Twitter Boostrap设置Rails Flash消息.
Rails使用:通知和:作为闪烁消息键提醒. Twitter Bootstrap提供了一个基类.alert和其他类.alert-success和.alert-error(参见关于警报的Bootstrap文档).需要一点解析才能获得一个Rails“通知”消息,使用Twitter Bootstrap“alert-success”风格进行风格化.任何其他消息(包括Rails“警报”消息)都将使用Twitter Bootstrap“alert-error”风格进行风格化.
默认情况下,Twitter Bootstrap将绿色背景应用于.alert-success,并将红色背景应用于.alert-error. Twitter Bootstrap提供了具有蓝色背景的第三类.alert-info.有一点黑客,可以使用自定义名称创建一个Rails flash消息,例如:info,将显示与Bootstrap .alert-info类.但是,遵循仅使用“警报”和“通知”的Rails约定是明智的.早期版本的Rails使用“错误”,但目前的做法是使用“alert”而不是“error”.
您可以包括直接在应用程序布局文件中显示Flash消息的代码,也可以创建部分.这是一个部分的例子.
首先,应用程序布局中有哪些:
# app/views/layouts/application.html.erb . . . <%= render 'layouts/messages' %> . . .
接下来,包含在应用程序布局中的部分:
# app/views/layouts/_messages.html.erb # Rails flash messages styled for Bootstrap 3.0 # works with Rails 4.0 or Rails 4.1 <% flash.each do |name,msg| %> <% if msg.is_a?(String) %> <div class="alert alert-<%= name.to_s == 'notice' ? 'success' : 'danger' %>"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <%= content_tag :div,msg,:id => "flash_#{name}" %> </div> <% end %> <% end %>
并且在控制器中设置两个不同的闪存消息的示例:
class VisitorsController < ApplicationController def new flash[:notice] = 'Welcome!' flash[:alert] = 'My birthday is soon.' end end
这个例子来自我写的一篇深入的文章:
对于可以容纳四种不同的Flash消息类型(成功,错误,警报,通知)的替代方案,请参阅Rails Flash Messages using Twitter Bootstrap的示例.