2

我正在使用设计。我想在登录过程成功后重定向到上一页。我遇到的问题是 request.referer 中始终包含 sign_in URL。如果没有一些明确的钩子,我如何获得上一页的 URL。

def after_sign_in_path_for(resource)
   stored_location_for(resource) || request.referer || search_index_path
end
4

2 回答 2

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

有点偏离轨道(设计),但会有所帮助。

于 2013-01-02T10:42:39.617 回答
0

内部动作控制器放

before_action :store_return_to, unless: :devise_controller?
def store_return_to
 store_location_for(resource, request.url)
end

例如resource,您的设计模型在哪里:user

于 2016-01-12T18:24:31.050 回答