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
68 69 70 71 72 |
# File 'lib/action_controller/components.rb', line 68 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/
82 83 84 85 86 87 |
# File 'lib/action_controller/components.rb', line 82 def uses_component_template_root path_of_calling_controller = File.dirname(caller[0].split(/:\d+:/).first) path_of_controller_root = path_of_calling_controller.sub(/#{controller_path.split("/")[0..-2]}$/, "") # " (for ruby-mode) self.template_root = path_of_controller_root end |