From 8d486c63d63eeb503fd18be615d5dd26dfa34fb5 Mon Sep 17 00:00:00 2001 From: Yves Senn Date: Wed, 5 Mar 2014 09:53:39 +0100 Subject: docs, flash message keys are normalized to strings. [ci skip] This is a follow up to a668beffd64106a1e1fedb71cc25eaaa11baf0c1 --- guides/source/upgrading_ruby_on_rails.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'guides/source') diff --git a/guides/source/upgrading_ruby_on_rails.md b/guides/source/upgrading_ruby_on_rails.md index da124e21a4..7467648d49 100644 --- a/guides/source/upgrading_ruby_on_rails.md +++ b/guides/source/upgrading_ruby_on_rails.md @@ -111,6 +111,26 @@ in your application, you can add an initializer file with the following content: This would transparently migrate your existing `Marshal`-serialized cookies into the new `JSON`-based format. +### Flash structure changes + +Flash message keys are +[normalized to strings](https://github.com/rails/rails/commit/a668beffd64106a1e1fedb71cc25eaaa11baf0c1). They +can still be accessed using either symbols or strings. Lopping through the flash +will always yield string keys: + +```ruby +flash["string"] = "a string" +flash[:symbol] = "a symbol" + +# Rails < 4.1 +flash.keys # => ["string", :symbol] + +# Rails >= 4.1 +flash.keys # => ["string", "symbol"] +``` + +Make sure you are comparing Flash message keys against strings. + ### Changes in JSON handling There are a few major changes related to JSON handling in Rails 4.1. -- cgit v1.2.3