Проверьте, есть ли у текущего контроллера родительский элемент какого-либо другого контроллера внутри application_controller - PullRequest
0 голосов
/ 17 ноября 2010

У меня есть отдельная часть сайта для отдельных, выделенных клиентов, у них есть инструменты в / выделенном пути, и все контроллеры, которые у них есть, являются наследованием DedicatedController. Я хочу создать before_filter в application_controller, чтобы защитить этих клиентов от открытия любых других страниц, которые не находятся в контроллерах, унаследованных от selected_controlle.

1 Ответ

0 голосов
/ 17 ноября 2010

Если вы используете before_filter в ApplicationController для предотвращения перехода клиентов на страницы, вы можете использовать skip_filter в базовом контроллере для DedicatedController.

Так что для наших у нас есть:

class ApplicationController
  before_filter :ensure_not_a_customer
  .
  .
end
class Admin::BaseController < ApplicationController
  skip_filter :ensure_not_a_customer
  .
  .
end
class Admin::WebpageController < Admin::BaseController
  .
  .
end

Тогда все, что унаследовано от Admin :: BaseController, пропустит before_filter из ApplicationController.

...