【復習】Railsのflashの使用方法
・Railsではviewで一時的にテキストを表示するするために、flash
というハッシュ形式のオブジェクトが設定されている。
・flash
のkey
にはデフォルトでnotice
とalert
が設定されているが、add_flash_types
でkey
を追加できる。
add_flash_types :info, :warning # %i(info warning)のように、%記法は使えない?
・add_flash_types
を記入することでflash
メッセージを1行で記載できる
# before flash[:info] = 'hoge' redirect_to root_url redirect_to root_url, flash: { info: 'hoge' } #上と同じ # after redirect_to root_url, info: 'hoge'
・redirect_to
では指定したpathにルーティング⇨コントローラ⇨viewと画面を遷移させているので、さらに次のviewではflash
メッセージは表示されない。対してrender
ではaction
名に対応したview
を表示させているので、さらに次のview
でもflash
メッセージは表示される。
⇨render
ではflash.now[:info]
とすることで現在の表示に対してflash
を行う
flash.now[:info] = 'hoge' render action: :new