2015-07-14 8 views
0

Я на Rails 4.Разрабатывают Перенаправление на страницу После входа администратора

Я его настройки так, когда пользователь подписывает или входит в (разработать) он будет перенаправлять на страницу они в последний раз были на. Он работает очень хорошо.

Однако у меня возникли проблемы с выяснением того, как полностью игнорировать админ. При входе в систему как администратор (admin - это собственная модель), я получаю цикл перенаправления, так как он хочет вернуться к предыдущей странице и панели администратора одновременно.

Вот мой application_controller:

after_filter :store_location 

    def store_location 
    # store last url as long as it isn't a /users path 
    session[:previous_url] = request.fullpath unless request.fullpath =~ /\/users/ 
    end 

    def after_sign_in_path_for(resource) 
    session[:previous_url] || root_path 
    end 

Что бы лучший способ игнорировать after_sign_in_path_for если это админ подписание в?

+0

admin Пользовательский объект или нет? –

+0

Admin - это собственная модель, а не пользовательский объект. @HaiderAli – Kathan

+0

какое поле вы используете, чтобы проверить администратор внутри пользовательской модели? –

ответ

0

Мы должны поставлять по маршруту или другому, так как мы создаем такой метод в нашем прикладном_контроллере. Простым решением будет следующее.

def after_sign_in_path_for(resource) 
    if resource.admin? #Assuming there is such a function 
    root_path 
    else 
    session[:previous_url] || root_path 
    end 
end 
+0

заменил 'resource.admin?' На 'admin_signed_in? ', И он работал как шарм. – Kathan

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