新手问题 登陆之后怎样跳转回之前的页面!

egg_show · 2014年05月26日 · 最后由 shawnqi 回复于 2015年11月02日 · 3504 次阅读

如题,我在页面 A,点击某个功能,需要登陆,就跳到了登陆页面 B,登陆之后再自动跳回页面 A,怎样做这个功能?不会是传参数吧?(Rails)

#1 楼 @yukihiro_matz 好吧,就这么着了

如果用 devise 有专门处理的方法

如果自己写可以把登录前页面写入 session 里面,再登录后转到

def redirect_back_or(default)
    redirect_to(session[:return_to] || default,:flash => {:notice => "welcome back"})
    session.delete(:return_to)
end

def store_location
  session[:return_to] = request.fullpath
end

#3 楼 @karmue 登陆注册在模板里面的,每个页面都可以点击,那他不登陆,就会一直有个 session 了?

#4 楼 @sunday35034 所有页面都有登陆注册,那 store_location 就放在过滤器里面了?

#6 楼 @egg_show 没错,用户没登录就保存下

redirect_to :back

how about redirect_to request.refer ?

#8 楼 @swordray 亲,Page A --> Login page --> Login action ( redirect_to :back --> Login page not Page A )

#9 楼 @qifengle 亲,Page A --> Login page --> Login action ( redirect_to request.refer --> which page? )

@sunday35034

session.delete(:return_to)

改成

session[:return_to] = nil

是否可以?

#12 楼 @steve 有点差别session[:return_to] = nil之后结果是{ :return_to => nil },用 delete 里面是{}。可以自己用 rails c 试试看

需要 登录 后方可回复, 如果你还没有账号请 注册新账号