2010-11-17 34 views
0

J'ai une partie séparée du site pour les clients séparés et dédiés, ils ont des outils sous chemin/dédié, et tous les contrôleurs dont ils disposent sont des héritages de DedicatedController. Je veux créer un before_filter dans application_controller pour protéger ces clients de l'ouverture d'autres pages qui ne sont pas dans les contrôleurs hérités par dedicated_controlle.Vérifier si le contrôleur actuel a parent d'un autre contrôleur à l'intérieur du contrôleur_application

Répondre

0

Si vous utilisez un before_filter dans ApplicationController pour empêcher les clients d'accéder aux pages, vous pouvez utiliser skip_filter dans le contrôleur de base du DedicatedController.

Donc, pour nous, nous avons:

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 

Puis tout hérité de l'administrateur :: BaseController sautera le before_filter du ApplicationController.