2016-01-17 3 views
0

Есть ли специальный способ перенаправления роли на указанную страницу по умолчанию, возвращаемую after_sign_in_path_for? У меня есть следующий код в моем контроллере приложения:Указать способ перенаправления пользователя на after_sign_in_path_for

def after_sign_in_path_for resource 
    dashboard_path 
end 

В другом контроллере, один из которых я не хочу, чтобы быть доступными после того, как роль входа, я следующий кодом, который использует before_action для перенаправления роль. Этот код работает правильно, но я чувствую, что есть лучший или разработанный особый подход к этому.

before_action :redirect_user_if_signed_in 

def index 
end 

private 
    def redirect_user_if_signed_in 
    if user_signed_in? 
     redirect_to dashboard_path 
    end 
    end 

ответ

1

Я считаю, что "изобрести-путь" является использование authenticate, authenticated и unauthenticated методы в вашем конфигурации/routes.rb

unauthenticated do 
    get 'only-for-guests' => 'guests#index' 
end 

authenticated do 
    get 'only-for-guests' => redirect('/dashboard') 
end 

Есть еще примеры здесь: Define resource actions that require authentication using routes.rb

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