環境
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