目次
この記事はアピリッツの技術ブログ「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