地方でリモートワーク in Iwate

東京の受託開発会社でリモートワークしてます。

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>")