我想/只有登录用户可以访问的内容,我有一个current_user帮助器,如果当前访问者没有登录,则返回用户ID或nil。
哪里是限制访问控制器中某些内容的最佳位置,还是可以作为路径的一部分添加?
答案 0 :(得分:4)
您应该在控制器中处理它。路线决定事情的进展,然后由控制人决定是否允许你去那里。
您的ApplicationController中应该有一个通用的authenticate
方法,用于检查某人是否已登录,如果不是,则将其重定向到登录页面。然后在您的特定控制器中:
class SomethingController < ApplicationController
before_filter :authenticate
def handler
#...
end
end
您可以使用:except
选项跳过特定处理的身份验证:
before_filter :authenticate, :except => [ :this_one, :and_this_one ]
还有其他选项,请参阅Action Controller Overview的过滤器部分了解详情。
答案 1 :(得分:4)
您必须添加控制器:before_filter并为其创建操作。
:before_filter :authenticate
def authenticate
redirect_to(registration_path) unless current_user.nil?
end
您还可以使用:only或:除过滤器选项。 或者我没有明白的问题?