aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-04-19 10:26:03 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-04-19 10:26:03 +0000
commit865874ab6a8be80d896604ba4106e14b57ebfdc5 (patch)
tree4cdc89a8ab9435db414169ff5300da50e0d26771
parentaa236c4425dc4564ced76c27c921cd0d5e9fd106 (diff)
downloadrails-865874ab6a8be80d896604ba4106e14b57ebfdc5.tar.gz
rails-865874ab6a8be80d896604ba4106e14b57ebfdc5.tar.bz2
rails-865874ab6a8be80d896604ba4106e14b57ebfdc5.zip
Fixed stringification on all assigned hashes. The sacrifice is that assigns[:person] wont work in testing. Instead assigns["person"] or assigns(:person) must be used. In other words, the keys of assigns stay strings but weve added a method-based accessor to appease the need for symbols.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1223 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r--actionpack/CHANGELOG2
-rw-r--r--actionpack/lib/action_controller/assertions.rb6
-rw-r--r--actionpack/lib/action_view/base.rb2
3 files changed, 8 insertions, 2 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG
index 8c1302b431..1cdf28ee06 100644
--- a/actionpack/CHANGELOG
+++ b/actionpack/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Fixed stringification on all assigned hashes. The sacrifice is that assigns[:person] won't work in testing. Instead assigns["person"] or assigns(:person) must be used. In other words, the keys of assigns stay strings but we've added a method-based accessor to appease the need for symbols.
+
* Fixed that rendering a template would require a connection to the database #1146
diff --git a/actionpack/lib/action_controller/assertions.rb b/actionpack/lib/action_controller/assertions.rb
index 53d53af400..e46e868ff5 100644
--- a/actionpack/lib/action_controller/assertions.rb
+++ b/actionpack/lib/action_controller/assertions.rb
@@ -14,10 +14,14 @@ module Test #:nodoc:
#
# These collections can be used just like any other hash:
#
- # assert_not_nil assigns[:person] # makes sure that a @person instance variable was set
+ # assert_not_nil assigns(:person) # makes sure that a @person instance variable was set
# assert_equal "Dave", cookies[:name] # makes sure that a cookie called :name was set as "Dave"
# assert flash.empty? # makes sure that there's nothing in the flash
#
+ # For historic reasons, the assigns hash uses string-based keys. So assigns[:person] won't work, but assigns["person"] will. To
+ # appease our yearning for symbols, though, an alternative accessor has been deviced using a method call instead of index referencing.
+ # So assigns(:person) will work just like assigns["person"], but again, assigns[:person] will not work.
+ #
# On top of the collections, you have the complete url that a given action redirected to available in redirect_to_url.
#
# For redirects within the same controller, you can even call follow_redirect and the redirect will be follow triggering another
diff --git a/actionpack/lib/action_view/base.rb b/actionpack/lib/action_view/base.rb
index cffbbfcb6b..72200904f0 100644
--- a/actionpack/lib/action_view/base.rb
+++ b/actionpack/lib/action_view/base.rb
@@ -157,7 +157,7 @@ module ActionView #:nodoc:
end
def initialize(base_path = nil, assigns_for_first_render = {}, controller = nil)#:nodoc:
- @base_path, @assigns = base_path, assigns_for_first_render.with_indifferent_access
+ @base_path, @assigns = base_path, assigns_for_first_render
@controller = controller
end