0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Rails]flashメッセージの使い方

Last updated at Posted at 2020-09-21

#はじめに
flashとは、ページ遷移した時に簡単なメッセージを一時的に表示させる機能です。
例えば、ユーザーがログインに成功した時に『ログインできました。』と表示させることで、ユーザーが進行具合を確認できるというものです。

#目次
1 基本的な書き方
2 flashとflash.nowの違い
#1. 基本的な書き方
###コントローラーの編集
flashはハッシュのような形で扱います。

flash[:キー名] = “表示さたいメッセージ”

キー名はあらかじめ用意せれているnoticeかalertオプションを用います(自分で好きな名前をつけることも可能です)。

controlle.rb
if @outgo.update(outgo_params)
   flash[:alert] = ‘メッセージが’登録されました。’
   redirect_to root_path
else
        ~  ~  

###ビューの編集
フラッシュメッセージを表示させたい箇所に下記を記述します。

<%= flash[:キー名] %>

html.erb
<%= flash[:alert] %>

#2. flashとflash.nowの違い
###両者の使い分け

  • flashは次のアクションが動いた後のビューファイルにflashメッセージを表示する時(redirect_toを用いた時)
  • flash.nowは現在のアクションで表示するビューファイルのみ有効なflashメッセージを表示させたい時(renderを用いた時)

###renderとredirect_toの挙動

  • render : controller → view

    コントローラーの直後にビューを表示しています。
  • 
redirect_to : controller → URL → route → controller → view

    コントローラーの直後に一度ルーティングを経由してビューを表示しています。

    なので

    flashは最初のアクションが実行された後の1回のみflashメッセージが表示されるのでredirect_toメソッドと一緒に用います。

    flash.nowは次のアクションが動く間表示されるのでrenderメソッドと一緒に用います。

#参考リンク
https://pikawaka.com/rails/flash
https://qiita.com/dice9494/items/2a0e92aba58a516e42e9

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?