【rails】フラッシュメッセージの設定
はじめに
フラッシュメッセージの設定について
フラッシュメッセージの設定
Bootstrapに用意されているスタイルのフラッシュ一覧
:alert, :notice ※デフォルト :success, :info, :warning, :danger
applicationコントローラに下記のadd_flash_types
を定義すると、コントローラでflash:
の部分を省略できるようになります。
class ApplicationController < ActionController::Base add_flash_types :success, :info, :warning, :danger end
redirect_to login_path, flash: { success: t'ユーザー登録が完了しました。' } ↓↓ redirect_to login_path, success: t'ユーザー登録が完了しました。'
フラッシュメッセージの表示部分
<% flash.each do |message_type, message| %> <div class="alert alert-<%= message_type %>"><%= message %></div> <% end %>
class="alert alert-<%= message_type %>"
のようにクラスを指定することで、
先程定義したフラッシュメッセージのスタイルごとに色を変えたりできるようになります。
またcontent_tag
を使って表すこともできます。
<% flash.each do |message_type, message| %> <%= content_tag(:div, message, class: "alert alert-#{message_type}") %> <% end %>
content_tag
は第一引数にタグをもち、第二引数にその中の値をとります。
また、classなども指定できます。
<%= content_tag(:div, message, class: "alert alert-#{message_type}") %> ↓↓ <div class="alert alert-#{message_type}">message</div>