9

我正在做:

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

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

我的第二种方法不起作用,因为 :manage :all 覆盖了它。有一种方法可以声明可以管理除批准之外的所有内容吗?在里面批准我只是做

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

更好的解决方案是什么?

4

1 回答 1

18

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

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

cannot :approve, Anuncio do |anuncio|
  anuncio.try(:aprovado)
end
于 2013-05-10T17:45:15.730 回答