首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >devise+cancan未阻止对索引问题的访问,其中@proj = Proj.all

devise+cancan未阻止对索引问题的访问,其中@proj = Proj.all
EN

Stack Overflow用户
提问于 2010-08-27 08:32:18
回答 1查看 677关注 0票数 1

我有一个使用Devise和CanCan的应用程序。在config>initializers>Abiliity.rb类中,能力包括CanCan::CanCan

代码语言:javascript
复制
  def initialize(user)
    if user.is? :superadmin
      can :manage, :all
    elsif user.is? :user
      can :read, Project do |project|
         project && project.users.include?(user)
      end
    end
  end
 end

我对项目控制器的指标作用有问题,项目控制器是一个普通的库存RESTful控制器。基本上,普通用户在登录时可以看到projects#index。但是并不是所有的项目都有这个用户作为“普通用户”,为什么cancan没有阻止他的访问呢?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-27 13:42:19

确保在ProjectsController中调用load_and_authorize_resource,如下所示:

代码语言:javascript
复制
class ProjectsController < ApplicationController
  load_and_authorize_resource

  #...
end

如果这仍然不起作用,请尝试在索引操作中调用authorize!方法,看看这是否有区别,例如:

代码语言:javascript
复制
class ProjectsController < ApplicationController
  #...

  def index
    @projects = Project.all
    authorize! :read, @projects
  end

  #...
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3580556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档