0
0

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】を自分なりに噛み砕いた(3部作その3)

Last updated at Posted at 2021-03-16

flashを理解する過程で、paramssessionについても理解できたのでまとめ
長くなりそうだったので、1:params2:session3:flashの3回に分けた

####【3部作リンク】
1:params
2:session
3:flash(ここ)

####【ページ内リンク】
0.環境
1.利用方法
2.結論

#0.環境
・AWS
・Rails 5.2.4.5
・ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

#1.利用方法
###順序①:Controller指定

examples_controller.rb
その1:flash = {notice: "noooo"}
   :redirect_to root_path
その2:redirect_to root_path, flash = {notice: "noooo"}
その3:redirect_to root_path, notice: "noooo"

ダメ例:redirect_to root_path, flash[:notice] = "noooo"

※「その1」~「その3」は全て同じ意味

・「その3」でredirect_toの後のflashを省略しているが、これはflashにはnotice(とalert)が標準装備されているからである。
・他のキーも、「その1」の書き方ならば値を代入でき、flashの便利な機能を使える
・他のキーも「その3」のように短く書きたい!なら以下のようにする
・「ダメ例」は「その2」と似てるのに駄目だった・・・

application_controller.rb
class ApplicationController < ActionController::Base
  add_flash_types :success, :info, :warning, :danger
end

Railsドキュメントでもこの4つが例となっていたが、これはBootstrapで簡単に色分けが出来るからである。

【外部ページ】
redirect_to使った時にBootstrap対応のフラッシュメッセージを表示させる

###順序②:View表示

application.html.erb
その1:<%= flash[:notice] %>
その2:<%= notice %>

※「その1」と「その2」は表示結果が同じ!

noticeや、add_flash_typesで指定されたキーは「その2」のように単体で書いてもエラーが出ない!

ページ内リンクへ戻る

#2.結論
flashの特徴】
flashは、Viewに一度だけ表示させるのに便利

・・・あれ、結局paramsが一番苦労したな。やっぱり基礎が1番大事(再確認)

ページ内リンクへ戻る

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?