我在做:
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
什么是更好的解决方案?
答案 0 :(得分:14)
尝试另一种方式,查看cancan wiki。尝试:
can :manage, :all if user.role == 'admin'
cannot :approve, Anuncio do |anuncio|
anuncio.try(:aprovado)
end