Module: ActionController::Components::ClassMethods

Defined in:
lib/action_controller/components.rb

Instance Method Summary collapse

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_rootObject

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