是否可能使用 CanCan 进行 :manage, :all 权限控制,但排除某个或多个方法?

11

我正在做:

can :manage, :all if user.role == 'admin'

can :approve, Anuncio do |anuncio|
  anuncio.try(:aprovado) == false
end

我的第二种方法不起作用,因为:manage :all会覆盖它。 有没有办法声明可以管理所有内容,但除了批准?并且在approve中只需要这样做:

can :approve, Anuncio do |anuncio|
  user.role == 'admin' && anuncio.try(:aprovado) == false
end

哪种方案更好?


Ruby on Rails :') - Flauwekeul
1个回答

21

尝试另一种方式,查看cancan wiki。尝试:

can :manage, :all if user.role == 'admin'

cannot :approve, Anuncio do |anuncio|
  anuncio.try(:aprovado)
end

我应该更加关注维基百科,非常感谢您的回答!=) - Bruno Sapienza
很遗憾,我不能点赞,因为我在StackOverflow上是新手,没有足够的声望来进行操作 :/ 我需要15个声望点!哈哈 =) - Bruno Sapienza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接