ホーム DoRuby flashのメッセージ以外の使い道

flashのメッセージ以外の使い道

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

社会人2年目になった、まだまだ技術的に新人域を抜けきっていない気がする中西です。

今回は、flashが使えるのは、メッセージだけでないことについて紹介します。

環境

Rails 4.1.4

Ruby 2.1.2

flashに渡せる値

flashトとは、セッションに一時的にメッセージを入れておける機能です。

エラー等のメッセージを値として渡し、リダイレクト先でそのメッセージを表示する使い方が多いと思います。

test_controller.rb
flash[:notice] = "テストメッセージです。"
flash[:error] = "エラーが発生しました。"
redirect_to test_path
test/show.html.slim
= flash[:notice]
= flash[:error]

しかし、flashの実態はHashです。

そのため、そのため、任意のキーを使用することができます。

したがって、メッセージの他に、独自に設定したキーで、名前やフラグを値として渡すこともできます。

 名前の例

test_controller.rb
flash[:test_name] = "welcome"
redirect_to test_path
test/show.html.slim
- if flash[:test_name]
  = link_to "#{flash[:test_name]}", "http://www.test.#{flash[:test_name]}"

 flagの例

test_controller.rb
flash[:test_view_flag] = true
redirect_to test_path
test/show.html.slim
- if flash[:test_view_flag]
  | テスト経由

まとめ

flashを一時的なsessionとしてうまく使うと、様々なことができそうです。

参照

http://guides.rubyonrails.org/action_controller_overview.html#the-flash

http://thepugautomatic.com/2012/08/the-rails-flash/

記事を共有

最近人気な記事