I use a standard of flash[:notice], flash[:error] and flash[:warning], and then I use these helpers in my application_helper.rb to display my flashes - it will handle strings in the above and will also print out a list of activerecord errors if you've assigned them to flash[:error]:
Code:
def display_standard_flashes(message = 'There were some problems with your submission:')
if flash[:notice]
flash_to_display, level = flash[:notice], 'notice'
elsif flash[:warning]
flash_to_display, level = flash[:warning], 'warning'
elsif flash[:error]
level = 'error'
if flash[:error].instance_of? ActiveRecord::Errors
flash_to_display = message
flash_to_display << activerecord_error_list(flash[:error])
else
flash_to_display = flash[:error]
end
else
return
end
content_tag 'div', flash_to_display, :class => "flash #{level}"
end
def activerecord_error_list(errors)
error_list = '<ul class="error_list">'
error_list << errors.collect do |e, m|
"<li>#{e.humanize unless e == "base"} #{m}</li>"
end.to_s << '</ul>'
error_list
end
Bookmarks