 ncancelliere -  
    November 16, 2008 - (>= v2.1.0)
 ncancelliere -  
    November 16, 2008 - (>= v2.1.0)
    
  Application Helper for Fading Flash Messages
A simple helper method for showing the flash message. Includes optional fade in seconds (view needs javascript_include_tag defaults if you desire fade effect):
def show_flash_message(options={}) html = content_tag(:div, flash.collect{ |key,msg| content_tag(:div, msg, :class => key) }, :id => 'flash-message') if options.key?(:fade) html << content_tag(:script, "setTimeout(\"new Effect.Fade('flash-message');\",#{options[:fade]*1000})", :type => 'text/javascript') end html end
simply call in your views then using:
<%= show_flash_message(:fade => 4) %>
 tokland -  
    June 11, 2009
 tokland -  
    June 11, 2009 
    
  Keeping the flash object on multiple redirects
If your controllers are redirecting more than once, the flash contents will be lost. To avoid it, execute flash.keep before each redirection.
Check ActionController::Flash::FlashHash for more handy methods (discard, now, …)
 insane-dreamer -  
    March 20, 2009
 insane-dreamer -  
    March 20, 2009 
    
  Broadened Flash helper
Building on the below excellent example, you can create something with default options for how long it’s displayed and how long the fade is, and highlight:
def show_flash(options={}) options = {:fade => 3, :display => 3, :highlight => true}.merge(options) html = content_tag(:div, flash.collect{ |key,msg| content_tag(:div, msg, :class => key, :attributes => "style = display: none;") }, :id => 'flash-message') html << content_tag(:script, "new Effect.Highlight('flash-message');") if options[:highlight] html << content_tag(:script, "$('flash-message').appear();") html << content_tag(:script, "setTimeout(\"$('flash-message').fade({duration: #{options[:fade]}});\", #{options[:display]*1000});") end
 Milind -  
    August  5, 2014
 Milind -  
    August  5, 2014 
    
  Handling flash for ajax calls
This is helper method which can be easily used to handle flash for ajax calls
##call it in your js.erb def flash_display response = "" flash.each do |name, msg| msg=msg+"<button type='button' class='close' title='hide' data- dismiss='alert'><i class='fa-times-circle-o fa pull-right'></i></button>".html_safe response = response + content_tag(:div, msg, :id => "flash_# {name}",:class=>"alert alert-danger") do "#{msg}".html_safe end end flash.discard response end
so in your controller,
def get_data_and_update_div @user_details=User.get_details if @user_details.nil? flash.now[:error]="Add your details and then submit" format.js { render 'shared/error_messages'} end
in error_messages.js.erb
$('#flash_messages').html("<%= escape_javascript raw(flash_display) %>");
in view file
<div id="flash_messages"> <% if flash[:error] %> <%= content_tag :div, flash['value'], :id =>"flash_error" %> <% end %> </div>

 RSpec
RSpec Ruby on Rails
Ruby on Rails Ruby
Ruby 
   
   
   
    
     
    
    
     
    