🐣

【Ruby on Rails】動作後のフラッシュメッセージ

2022/04/15に公開

学習後のアウトプットとして記録しています。
何か間違いがありましたら、ご指定宜しくお願い致します。

内容

フラッシュメッセージとは?
更新や削除ボタンを押した時に、「更新に成功しました!」みたいに画面上に表示されるメッセージのことです。
フラッシュメッセージを表示させる事で、変更や削除などが正常に成立しているのか可視化されるのでユーザーが迷わなくてすみそうです。

環境

Windows10
cloud9
Ruby2.6.3
Rails6.1.4
Bootstrap

本題

1.表示したいviewのcontrollerにフラッシュメッセージを記述
例、
新規投稿をして成功した時の例です。

def create
    @user = current_user
    @new_book = Book.new(book_params)
    @new_book.user_id = current_user.id
    if @new_book.save
      flash[:notice] = "投稿に成功しました。" ←この行を追加
      redirect_to book_path(@new_book)
    else
      flash[:alret] = "投稿に失敗しました。" ←この行を追加
      @books = Book.all
      render "index"
    end
  end

2.applecation.html.erbに表示させるコードを記述
今回は1つのページだけでなく、他のページにも表示させたい為applecation.html.erbに記述しています。こちらに関してはそれぞれの環境に合わせて下さい。

<div class="text-success">
  <%= flash[:notice] %> ←この行を追加
</div>
<div class="text-danger">
  <%= flash[:alret] %> ←この行を追加
</div>

Boostrapを使用してそれぞれ色を指定しています。
成功時[:notice] → 緑色(text-success)
失敗時[:alret] → 赤色(text-danger)

フラッシュメッセージはこんな感じです↓

お疲れ様でした。

Discussion