diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2008-08-31 03:44:00 +0100 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2008-08-31 03:48:09 +0100 |
commit | a59a3db1f3ae8c6aadaa8e1ce08b05f9ad677932 (patch) | |
tree | f54b4998a217ff4a0fc6d94fca9e3fd9d88dc694 /actionpack/lib/action_view/base.rb | |
parent | 6183e55f714b436335dc843528be7525c342d922 (diff) | |
download | rails-a59a3db1f3ae8c6aadaa8e1ce08b05f9ad677932.tar.gz rails-a59a3db1f3ae8c6aadaa8e1ce08b05f9ad677932.tar.bz2 rails-a59a3db1f3ae8c6aadaa8e1ce08b05f9ad677932.zip |
Move copying ivar logic from ActionController::Base to ActionView::Base
Diffstat (limited to 'actionpack/lib/action_view/base.rb')
-rw-r--r-- | actionpack/lib/action_view/base.rb | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/actionpack/lib/action_view/base.rb b/actionpack/lib/action_view/base.rb index c65048bfa0..ce629d332a 100644 --- a/actionpack/lib/action_view/base.rb +++ b/actionpack/lib/action_view/base.rb @@ -343,18 +343,20 @@ module ActionView #:nodoc: private # Evaluate the local assigns and pushes them to the view. - def evaluate_assigns + def evaluate_assigns_and_ivars unless @assigns_added - assign_variables_from_controller + @assigns.each { |key, value| instance_variable_set("@#{key}", value) } + + if @controller + variables = @controller.instance_variables + variables -= @controller.protected_instance_variables if @controller.respond_to?(:protected_instance_variables) + variables.each {|name| instance_variable_set(name, @controller.instance_variable_get(name)) } + end + @assigns_added = true end end - # Assigns instance variables from the controller to the view. - def assign_variables_from_controller - @assigns.each { |key, value| instance_variable_set("@#{key}", value) } - end - def set_controller_content_type(content_type) if controller.respond_to?(:response) controller.response.content_type ||= content_type |