Подтвердить что ты не робот

Как получить запрос целевого контроллера и действия с Rails 3?

В контроллере приложения перед фильтром.

class ApplicationController < ActionController::Base
  before_filter :authenticate

  def authenticate
    # How do we know which controller and action was targetted?
  end
end
4b9b3361

Ответ 1

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

Ответ 2

В Rails 3.2 вам больше не нужно вызывать control.action_name явно вместо "action_name".

before_filter :check_if_locked


def check_if_locked
  puts action_name
  puts controller_name
end

Ответ 3

Вы можете получить полный объект url, используя

url = Rails.application.routes.recognize_path(request.env['PATH_INFO'])

теперь вы можете получить компоненты как

url[:controller]

url[:action]

По умолчанию вы также можете использовать params[:controller] и params[:action] в течение жизненного цикла запроса/ответа.

Ответ 4

request.parameters['controller']
request.parameters['action']