Module: ActionController::Components::ClassMethods
- Defined in:
- lib/action_controller/components.rb
Instance Method Summary collapse
-
#process_with_components(request, response, parent_controller = nil) ⇒ Object
Track parent controller to identify component requests.
-
#uses_component_template_root ⇒ Object
Set the template root to be one directory behind the root dir of the controller.
Instance Method Details
#process_with_components(request, response, parent_controller = nil) ⇒ Object
Track parent controller to identify component requests
63 64 65 66 67 |
# File 'lib/action_controller/components.rb', line 63 def process_with_components(request, response, parent_controller = nil) #:nodoc: controller = new controller.parent_controller = parent_controller controller.process(request, response) end |
#uses_component_template_root ⇒ Object
Set the template root to be one directory behind the root dir of the controller. Examples:
/code/weblog/components/admin/users_controller.rb with Admin::UsersController
will use /code/weblog/components as template root
and find templates in /code/weblog/components/admin/users/
/code/weblog/components/admin/parties/users_controller.rb with Admin::Parties::UsersController
will also use /code/weblog/components as template root
and find templates in /code/weblog/components/admin/parties/users/
77 78 79 80 81 82 |
# File 'lib/action_controller/components.rb', line 77 def uses_component_template_root path_of_calling_controller = File.dirname(caller[1].split(/:\d+:/, 2).first) path_of_controller_root = path_of_calling_controller.sub(/#{Regexp.escape(File.dirname(controller_path))}$/, "") self.template_root = path_of_controller_root end |