diff options
-rw-r--r-- | actionpack/lib/action_controller/components.rb | 2 | ||||
-rw-r--r-- | actionpack/test/controller/components_test.rb | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/components.rb b/actionpack/lib/action_controller/components.rb index 0d17d51ef8..148f7b9119 100644 --- a/actionpack/lib/action_controller/components.rb +++ b/actionpack/lib/action_controller/components.rb @@ -17,7 +17,7 @@ module ActionController #:nodoc: end def component_class(options) - options[:controller] ? (options[:controller].camelize + "Controller").constantize : self + options[:controller] ? (options[:controller].camelize + "Controller").constantize : self.class end def component_request(options) diff --git a/actionpack/test/controller/components_test.rb b/actionpack/test/controller/components_test.rb index 36f15d8df5..7ad3108dd7 100644 --- a/actionpack/test/controller/components_test.rb +++ b/actionpack/test/controller/components_test.rb @@ -17,6 +17,14 @@ class CallerController < ActionController::Base render_template "Ring, ring: <%= render_component(:controller => 'callee', :action => 'being_called') %>" end + def internal_caller + render_template "Are you there? <%= render_component(:action => 'internal_callee') %>" + end + + def internal_callee + render_text "Yes, ma'am" + end + def rescue_action(e) raise end end @@ -58,4 +66,9 @@ class RenderTest < Test::Unit::TestCase get :calling_from_template assert_equal "Ring, ring: Lady of the House, speaking", @response.body end + + def test_internal_calling + get :internal_caller + assert_equal "Are you there? Yes, ma'am", @response.body + end end
\ No newline at end of file |