0

我让用户能够查看公共页面的预览,即使他们没有登录。公共页面有一个登录链接,在用户被重定向到登录页面并登录后,他们'重新重定向回存储的 public_page。

我正在寻找的是一种在用户离开他们正在预览的 public_page 而不登录时调用 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
4

1 回答 1

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

当然,我不知道是哪个控制器处理您的登录,也不知道具体涉及哪些操作,但是按照这些思路应该可以完成工作。

于 2012-07-18T22:00:19.373 回答