我正在让用户能够查看公共页面的预览,即使他们没有登录。公共页面有一个登录链接,并且在用户被重定向到登录页面并登录后,他们被重定向回存储的公共页面。
我正在寻找的是一种在用户导航离开他们正在预览的公共页面而无需登录时调用clear_location方法的方法。现在,如果用户访问预览页面然后返回我的主页并从那里登录,他们被引导回他们正在查看的预览页面。
def page_public
store_location
end
def store_location
session[:current_location] = request.fullpath
end
def clear_location
session[:current_location] = nil
end
答案 0 :(得分:2)
听起来好像你只想在访问任何不是登录页面的页面时调用clear_location。 假设这是正确的,您可能需要在ApplicationController中使用before_filter,您可以跳过登录所涉及的操作。也许是这样的:
class ApplicationController < ActionController::Base
before_filter :clear_location
...
def clear_location
session[:current_location] = nil
end
end
class LoginController < ApplicationController
skip_before_filter :clear_location, :only => [:login]
...
end
当然,我不知道哪个控制器处理您的登录,或者确切涉及哪些操作,但是这些内容应该可以完成工作。