无需登录即可直接访问网址

时间:2013-07-11 07:24:52

标签: ruby-on-rails-3 devise routing

我正在考虑这样做 -

任何网址(除非我特别禁用)都可以直接访问而无需登录,但是如果您点击页面上的任何链接,它会将您重定向到注册页面

我正在考虑几种方法,但它们都不够灵活,无法使用设计

  1. 创建一个新的link_to_not_registered帮助器,我将在每个link_to上使用它,它将检查用户是否已登录

  2. 创建一个before_filter来检查用户是否已登录。这有点问题,因为我不知道如何仅在链接时创建过滤器而不是直接访问页面时

    < / LI>
  3. 有一个外部标记来测试用户是否已登录并相应地更改页面。

  4. 在登录/注册后都没有帮助我重定向用户(新的帮助链接注册,在过滤器变得过于复杂之前,标记太简单了)

    Is there a way to create a functionality of direct access to show actions while clicking on links requires login?
    

1 个答案:

答案 0 :(得分:0)

我认为最好的方法是before_filter。您可以通过request.referrer查看上一页,因此,如果它是您应用内的页面,则会将用户重定向到登录路径

def to_signin
    redirect_to singin_path if request.referrer["http://myapp.com"]
end