📑

[Rails]flashの使い方

2024/02/08に公開

flashとは

一時的にデータを保持して一度使用後に消去される性質を持つ。
アクション実行後に簡単なメッセージを表示させることができます。
ログイン周りの処理において特に重宝されます。

使用方法

2パターンあります。
1つ目

コントローラー
  def create
    board = Board.create(board_params)
    flash[:notice] = "「#{board.title}」の掲示板を作成しました"
    redirect_to board
    #binding.pry
  end

flash[:notice] = "「#{board.title}」の掲示板を作成しました"で定義し、
Viewで埋め込む

view
<% if flash[:notice] %>
  <div class="alert alert-primary"><%= flash[:notice] %></div>
<% end %>

2つ目

コントローラー
  def destroy
    @board.destroy
    redirect_to boards_path, flash: { notice: "「#{@board.title}」の掲示板が削除されました" }
  end

flash: { notice: "「#{@board.title}」の掲示板が削除されました" }をリダイレクトの引数に定義する
(viewの定義は1つ目と同じ)です。

flashとflash.now

flash
次のアクション終了までデータを保持する
flash.now
次のアクションに移行した時点でデータを消去する

Discussion