2016-07-15 2 views
0

Я пытаюсь реализовать эту функцию с помощью Devise, но я не могу заставить ее делать что-либо, кроме перенаправления на главную страницу.Перенаправление на предыдущую страницу после входа в систему с помощью Devise

Мне нужно положить что-то в мой метод after_sign_in_path_for.

Я пробовал:

def after_sign_in_path_for(resource) 
    request.env['omniauth.origin'] || stored_location_for(resource) || root_url 
    super 
end 

Я посмотрел на this question и почти каждый пост об этом на SO без удачи. Видимо Придумайте хранит предыдущие местоположения по умолчанию, но я пытался делать это сам:

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 

Я сделал десятки различных комбинаций выше и ответов на другие вопросы. Почему никто из них не работает? Я даже не получаю ошибок или чего-то еще, это в основном просто игнорирует мой код и перенаправляет на главную страницу независимо от того, что я делаю.

+0

Вы проверили [Придумайте вики] (https://github.com/plataformatec/devise/wiki/How-To: -Redirect-встречно-текущей-страницы-после-входа в, -знак-аут, -знак вверх, -update)? –

+0

@NicNilov Да, я пробовал практически любую часть кода. – 123

ответ

0

вы можете попробовать использовать request.referer с этим

redirect_to request.referer 

это question может также обеспечить более глубокое

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