Skip to content

Instantly share code, notes, and snippets.

@fjahr
Forked from suryart/application.html.erb
Last active October 4, 2021 10:35
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save fjahr/b3828b9f4e333e74ba1894687d65e055 to your computer and use it in GitHub Desktop.
Save fjahr/b3828b9f4e333e74ba1894687d65e055 to your computer and use it in GitHub Desktop.
Displaying Rails 5 flash messages with Twitter Bootstrap 4 (last tested on Alpha-v6). Updated version of https://gist.github.com/suryart/7418454
// layout file
<body>
<div class="container">
<%= flash_messages %>
<%= yield %>
</div><!-- /container -->
</body>
module ApplicationHelper
def bootstrap_class_for flash_type
{ success: "alert-success", error: "alert-danger", alert: "alert-warning", notice: "alert-info" }.stringify_keys[flash_type.to_s] || flash_type.to_s
end
def flash_messages(opts = {})
flash.each do |msg_type, message|
concat(content_tag(:div, message, class: "alert #{bootstrap_class_for(msg_type)}", role: "alert") do
concat content_tag(:button, 'x', class: "close", data: { dismiss: 'alert' })
concat message
end)
end
nil
end
end
@aqabawe
Copy link

aqabawe commented Jan 10, 2021

How can we add support to html in the flash body? for example adding a link.


Edit:
You can do that by replacing message with message.html_safe
Thanks for the very useful gist.

@johnhailu
Copy link

bootstrap 5

def flash_messages(opts = {})
flash.each do |msg_type, message|
concat(content_tag(:div, message, class: "alert #{bootstrap_class_for(msg_type)} alert-dismissible fade show", role: "alert") do
concat content_tag(:button, '', class: "btn-close", data: { bs_dismiss: 'alert' })
concat message
end)
end
nil
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment