Ruby on rails 将某些路由限制为登录用户

Ruby on rails 将某些路由限制为登录用户,ruby-on-rails,ruby-on-rails-3,authentication,Ruby On Rails,Ruby On Rails 3,Authentication,我希望只允许登录用户访问/something,我有一个current_user helper,如果当前访问者未登录,它将返回用户id或nil 哪里是限制访问控制器/控制器中某物的最佳位置,或者可以将其添加为路由的一部分 您应该在控制器中处理该问题。路线决定事物的走向,然后由管制员决定是否允许你去那里 在应用程序控制器中应该有一个通用的身份验证方法,用于检查是否有人登录,如果没有,则将其重定向到登录页面。然后在您的特定控制器中: class SomethingController < App

我希望只允许登录用户访问/something,我有一个current_user helper,如果当前访问者未登录,它将返回用户id或nil


哪里是限制访问控制器/控制器中某物的最佳位置,或者可以将其添加为路由的一部分

您应该在控制器中处理该问题。路线决定事物的走向,然后由管制员决定是否允许你去那里

在应用程序控制器中应该有一个通用的
身份验证
方法,用于检查是否有人登录,如果没有,则将其重定向到登录页面。然后在您的特定控制器中:

class SomethingController < ApplicationController
  before_filter :authenticate

  def handler
    #...
  end
end

还有其他选项,有关详细信息,请参阅的“过滤器”部分。

您应该在控制器中处理该选项。路线决定事物的走向,然后由管制员决定是否允许你去那里

在应用程序控制器中应该有一个通用的
身份验证
方法,用于检查是否有人登录,如果没有,则将其重定向到登录页面。然后在您的特定控制器中:

class SomethingController < ApplicationController
  before_filter :authenticate

  def handler
    #...
  end
end

还有其他选项,有关详细信息,请参阅的筛选器部分。

您必须在筛选器之前添加控制器:并为此创建操作

:before_filter :authenticate 

def authenticate
  redirect_to(registration_path) unless current_user.nil?
end
您还可以使用:only或:except过滤器选项。
或者我不理解这个问题?

您必须在筛选之前添加控制器:并为此创建操作

:before_filter :authenticate 

def authenticate
  redirect_to(registration_path) unless current_user.nil?
end
您还可以使用:only或:except过滤器选项。
还是我不明白这个问题?

另外,向您推荐railstutorial.org。对于新手来说,这是一个不错的教程。我必须先使用
然后再使用\u filter:authenticate
才能让它正常工作。无前导冒号。自应答后,它被重命名为
before\u action
,正确的形式是:
before\u action:authenticate
@current\u user.nil?
,因为这可能是一个实例变量。另外,向您推荐railstutorial.org。对于新手来说,这是一个不错的教程。我必须先使用
然后再使用\u filter:authenticate
才能让它正常工作。没有前导冒号。自应答后,它被重命名为
before\u action
,正确的形式是:
before\u action:authenticate
@current\u user.nil?
,因为这可能是一个实例变量。