🐣
【Ruby on Rails】動作後のフラッシュメッセージ
学習後のアウトプットとして記録しています。
何か間違いがありましたら、ご指定宜しくお願い致します。
内容
フラッシュメッセージとは?
更新や削除ボタンを押した時に、「更新に成功しました!」みたいに画面上に表示されるメッセージのことです。
フラッシュメッセージを表示させる事で、変更や削除などが正常に成立しているのか可視化されるのでユーザーが迷わなくてすみそうです。
環境
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