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 | |
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')
-rw-r--r-- | actionpack/lib/action_view/base.rb | 16 | ||||
-rw-r--r-- | actionpack/lib/action_view/renderable.rb | 2 |
2 files changed, 10 insertions, 8 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 diff --git a/actionpack/lib/action_view/renderable.rb b/actionpack/lib/action_view/renderable.rb index fa45edd436..5d950e336e 100644 --- a/actionpack/lib/action_view/renderable.rb +++ b/actionpack/lib/action_view/renderable.rb @@ -29,7 +29,7 @@ module ActionView view._first_render ||= self view._last_render = self - view.send(:evaluate_assigns) + view.send(:evaluate_assigns_and_ivars) view.send(:set_controller_content_type, mime_type) if respond_to?(:mime_type) view.send(method_name(local_assigns), local_assigns) do |*names| |