我正在使用devise。我想在登录过程成功后重定向到上一页。我遇到的问题是request.referer总是有sign_in URL。如何在没有明确挂钩的情况下获取上一页的URL。
def after_sign_in_path_for(resource)
stored_location_for(resource) || request.referer || search_index_path
end
答案 0 :(得分:3)
我不在我的开发机器上,所以无法验证它。但它应该是。
#application controller
def store_return_to
session[:return_to] = request.uri
end
def redirect_back_or_default
redirect_to(session[:return_to] || root_url)
session[:return_to] = nil
end
#home_controller | or any other controller we want to use it.
before_filter :store_return_to
# Session/login_controlelr
Call this function after successful sign_in or sign_up
redirect_back_or_default
有点离开赛道(设计),但会有所帮助。
答案 1 :(得分:0)
内部动作控制器
before_action :store_return_to, unless: :devise_controller?
def store_return_to
store_location_for(resource, request.url)
end
resource
是您的设计模型,每个示例:user