Railsでajaxでもflashメッセージを表示する方法

f:id:ihatov08:20170209122117j:plain

Railsでajaxでもflashメッセージを表示する方法です。

controller

def some_action
respond_to do |format|
format.js { flash[:danger] = "My flash message error." }
end
end

html

<div id="flash_messages">
<% flash.each do |type, message| %>
<p><%= type %>: <%= message %></p>
<% end %>
</div>

js.erb

# action_name.js.erb
<% flash.each do |type, message| %>
$("#flash_messages").html("<%= type.to_s.humanize %>: <%= message.html_safe %>")
<% end %>

※ bootstrapを使っている場合

$("#flash_messages").html("<div class='alert <%= bootstrap_class_for(type) %> alert-dismissible' role='alert'><button class='close' data-dismiss='alert'>×</button><%= message.html_safe %></div>")

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA