我正在使用设计。我想在登录过程成功后重定向到上一页。我遇到的问题是 request.referer 中始终包含 sign_in URL。如果没有一些明确的钩子,我如何获得上一页的 URL。
def after_sign_in_path_for(resource)
stored_location_for(resource) || request.referer || search_index_path
end
我正在使用设计。我想在登录过程成功后重定向到上一页。我遇到的问题是 request.referer 中始终包含 sign_in URL。如果没有一些明确的钩子,我如何获得上一页的 URL。
def after_sign_in_path_for(resource)
stored_location_for(resource) || request.referer || search_index_path
end
我不在我的开发机器上,所以无法验证它。但它应该是。
#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
有点偏离轨道(设计),但会有所帮助。
内部动作控制器放
before_action :store_return_to, unless: :devise_controller?
def store_return_to
store_location_for(resource, request.url)
end
例如resource
,您的设计模型在哪里:user