我正在创建一个rails应用程序,用户可以登录并查看各种页面。一些是私有的,另一些是公共的。如果用户在查看个人主页时注销,他应该被重定向到root_path。如果用户在查看公共页面时注销,他应该被重定向到相同的页面(现在他已经退出了,呈现方式略有不同)。
我想在我的application_controller中的after_sign_out_path_for(resource_or_scope)方法中使用一个条件语句来实现这一点。问题在于,通常从pages_controller文件访问的@page变量在此范围内为空和/或不可用。在会话被销毁之后,从不同的控制器访问这个变量(最后加载的页面)的最佳方式是什么?
谢谢。
发布于 2012-10-03 05:25:31
您可以在会话变量中跟踪最后一个页面,并在筛选器之前添加以使其在页面控制器中保持最新。
session[:last_page_visited] = @page您还可以访问request.referrer,这将为您提供他们从中注销的页面的URL。不确定您是否可以从中确定私有/公共,也许使用正则表达式?
https://stackoverflow.com/questions/12698397
复制相似问题