2011-01-13 5 views
5

Я пытаюсь создать действие, которое будет проверять для каждой страницы, если пользователь вошел в систему Для этого в контроллере Home Я создал этот метод:.before_filter с другим контроллером

def check_session 
    if !session[:user_id] 
    redirect_to :action=> 'login' 
    end 
end 

и я ве поместить этот код в голову контроллера:

before_filter :check_session, :except => [:sub_layout, :authenticate, :login] 

Теперь я хочу использовать check_session снаружи страниц Home, позволяет сказать, что на страницах Users. Каков правильный синтаксис для вызова метода другого контроллера в before_filter?

ответ

7

Если вы переместите все, что у вас уже есть в application_controller, он будет проверять каждый контроллер в вашем приложении. Затем используйте :skip_before_filter method, чтобы обойти проверку для любых контроллеров/действий, которые вы хотите.

+0

ОК, и как определить метод: except? – hizki

+0

Хизки, отредактированный ответ, чтобы помочь вам. – JackCA

+0

Спасибо! еще одна вещь ... Скажем, у меня будет несколько 'before_filter', есть ли способ указать, какие из них пропустить? Редактировать: Я посмотрел ссылку на метод. Это объясняется там ... Еще раз спасибо! – hizki

Смежные вопросы