点击退出时,我想重定向回用户所在的页面,除非该页面要求用户登录。
方案1 - “后退”需要用户 1)用户点击用户帐户页面的注销 2)重定向(最终)到root_path
方案2 - “后退”不需要用户 1)用户点击(不是用户要求的)事件页面的注销 2)重定向(最终)到events_path
有人建议我更新我的before_filter:require_use方法是这样的:
def require_user
unless current_user
flash[:notice] = "You must be logged in to view this page"
redirect_to user_coming_from_logout_method? root_path : login_path
end
end
除非我无法定义#user_coming_from_logout_method?
有人可能认为这只是:
request.referrer == "/logout"
但是在上面的示例中,request.referrer实际上是==“/ user_account”,而不是中间注销方法。很奇怪,我知道。
建议?
答案 0 :(得分:0)
我认为您不能依赖浏览器在重定向上设置引荐来源。 This thread详细讨论了这个问题。
也许在注销控制器的session
中设置一些东西,然后在require_user
方法中进行测试然后清除?