僕はbootstrapをよく使うので、bootstrapのAlerts Componentを使ってflash部分をpartial化してみる。
もちろんbootstrapじゃなくても、flashのタイプごとにhtmlとかcssを変えたい場合に応用できると思う。
_flashes.html.erb
<% flash.each do |type, message| %>
<div class="alert <%= flash_class_for(type) %>" role="alert">
<button class="close" data-dismiss="alert">×</button>
<%= message %>
</div>
<% end %>
application.html.erb
<%= render partial: "shared/flashes", flash: flash %>
application_helper.rb
module ApplicationHelper
def flash_class_for flash_type
case flash_type
when 'success' then 'alert-success'
when 'error' then 'alert-danger'
when 'alert' then 'alert-warning'
when 'notice' then 'alert-info'
end
end
end