我正在尝试实现以下场景:
1)用户未登录,且在第foo页。2)用户在该页面上单击登录,该页面会显示一个lightbox。3)用户通过lightbox登录。4)登录成功后,刷新foo页面。
步骤1-3已完成。现在在步骤4中,如果用户是通过lightbox方法登录的,那么用户在登录时总是被重定向到他们的个人资料页面。
我有登录重定向到页面,如果用户试图获得一些页面,这需要登录访问。然后用户登录并被自动重定向到用户试图转到的页面。但在上面的场景中,用户已经在一个页面上,我希望在登录时刷新该页面。
关于如何实现上述内容,有什么建议吗?
谢谢。
发布于 2011-07-11 22:56:52
你的问题的答案是重定向到当前页面,而不是“刷新”它:
redirect_to request.url但是,请注意,这将发出一个重定向,这意味着一个302状态代码(rails默认)。您可以使用以下命令指定所需的状态代码:
redirect_to request.url, :status => 301希望这能有所帮助!
发布于 2011-07-11 22:57:18
让lightbox中的登录表单通过ajax提交(而不是通常的post)。在Rails3中,只需在表单中使用:remote => true。在ajax响应中,运行一些刷新页面的javascript:window.location.href = window.location.href;
请注意,有许多方法可以完成您的任务,而这只是一种选择。我发现它在我的网站上运行得很好:http://www.tmatthew.net/blog
发布于 2011-07-13 04:44:33
您可以在许多情况下轻松使用的一个选项是:
redirect_to :back
这只会将浏览器返回发出请求的页面。如果您的表单出现在多个地方,并且您希望提交表单的人被带回他们碰巧从哪个页面提交,而不是总是重定向到某个页面(如您所描述的),这将非常方便。
https://stackoverflow.com/questions/6651995
复制相似问题