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
This commit is contained in:
David Heinemeier Hansson 2005-04-19 10:26:03 +00:00
parent aa236c4425
commit 865874ab6a
3 changed files with 8 additions and 2 deletions

View File

@ -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

View File

@ -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

View File

@ -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