flashの書き方
flashの書き方
自分は最初にこの書き方を覚えました
flash[:キー名] = "テキスト"
デバックしてみると以下のようにハッシュの形式になっています。
pry
> flash
=> #<ActionDispatch::Flash::FlashHash:0x00007f9957294508 @discard=#<Set: {}>, @flashes={"danger"=>"ログインに失敗しました"}, @now=nil>
また、このようにも書けます。
flash: {キー名: "テキスト"}
view側で呼び出すには以下のように書きます。
<%= flash[:キー名] %>
flashで使用するkeyについて
Railsのデフォルトではnotice
、alert
のみ使用できます。
デフォルトではこの2つは以下のようにflashを省略できます。
#before redirect_to root_path, flash: {notice: "falshです"} #after redirect_to root_path, notice: "flashです"
view では以下のように呼び出せます。
<%= notice %>
他のkyeも上記のように省略して書きたい場合はadd_flash_types
メソッドを使用します。
ここではBootstrapを使用した場合を考えてみます。 Bootstrapではいくつかのkeyにstyleが設定されています。以下の表はその中の一例です。
Key | Style |
---|---|
success | |
danger | |
info | |
warning |
これらをadd_flash_typesメソッドを使用してRailsのデフォルトに追加するには以下のコードを加えます。
controllers/application_controller.rb class ApplicationController < ActionController::Base add_flash_types :success, :danger, :info, :warning end
これを追加する事で4つkeyもflashを省略して書くことができす。
redirect_to root_path, success: "flashです"
その他
flash.now
、flash.keep
やflash部分のパーシャルについては以下の記事が分かりやすいです。