Dans le contrôleur d'application avant le filtre.
class ApplicationController < ActionController::Base
before_filter :authenticate
def authenticate
# How do we know which controller and action was targetted?
end
end
class ApplicationController < ActionController::Base
before_filter :authenticate
def authenticate
# How do we know which controller and action was targetted?
params[:controller]
params[:action]
# OR
controller.controller_name
controller.action_name
end
end
Dans Rails 3.2, vous n'avez plus besoin d'appeler explicitement controller.action_name au lieu de simplement "action_name".
before_filter :check_if_locked
def check_if_locked
puts action_name
puts controller_name
end
Vous pouvez obtenir un objet URL complet en utilisant
url = Rails.application.routes.recognize_path(request.env['PATH_INFO'])
maintenant, vous pouvez obtenir des composants
url[:controller]
url[:action]
Par défaut, vous pouvez également utiliser params[:controller]
et params[:action]
respectivement pendant le cycle de vie de la demande/réponse.
request.parameters['controller']
request.parameters['action']