rails 4 -- flash notice
In application.html.erb
, you would be displaying the flash
messages.
Update that code as below
<% flash.each do |name, msg| %> <%= content_tag :div, msg, class: "alert alert-info" %> <% end %>
You can add the classes that you want to apply to the flash message in the class
option.
EDIT
The class is setup as alert alert-notice
because of alert alert-<%= key %>
in your code.When you call redirect_to @widget, notice: 'Widget was successfully created.
A flash message would be added in flash
hash with key as notice
and value as Widget was successfully created.
, i.e.,
flash[:notice] = "Widget was successfully created."
EDIT #2
format.html { redirect_to @widget, notice: 'Widget was successfully created.' }
notice: 'Widget was successfully created.'
is an argument passed to redirect_to
method. It is added to flash
hash in this method.
Add this to
app/controllers/application_controller.rb
class ApplicationController add_flash_types :success, :warning, :danger, :infoend
and then you can do this in your controllers
format.html { redirect_to @widget, success: 'Widget was successfully created.' }
provided you did this in your layouts
<div class="container"> <% flash.each do |key, value| %> <div class="alert alert-<%= key %>"><%= value %></div> <% end %> <%= yield %></div>
If you don't want to mess up with your ApplicationController
as @Sachin Mour indicated, you can just add few addtional CSS clases, accordingly:
in app/assets/stylesheets/custom.scss
:
/*flash*/.alert-error { background-color: #f2dede; border-color: #eed3d7; color: #b94a48; text-align: left; }.alert-alert { background-color: #f2dede; border-color: #eed3d7; color: #b94a48; text-align: left; }.alert-success { background-color: #dff0d8; border-color: #d6e9c6; color: #468847; text-align: left; }.alert-notice { background-color: #dff0d8; border-color: #d6e9c6; color: #468847; text-align: left; }
Step by step tutorial, how to approach flash messages with devise and bootstrap, you can find here