可以CanCan可以:管理,:除了一个或多个方法之外的所有方法?

时间:2013-05-10 17:08:53

标签: ruby-on-rails ruby ruby-on-rails-3 cancan

我在做:

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

什么是更好的解决方案?

1 个答案:

答案 0 :(得分:14)

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

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

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