ruby-on-rails - 有可能 CanCan can :manage, :all except one or more method?

标签 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

什么是更好的解决方案?

最佳答案

尝试换一种方式,查看cancan wiki .尝试:

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

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

关于ruby-on-rails - 有可能 CanCan can :manage, :all except one or more method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487465/

相关文章:

ruby-on-rails - Rails 4 和 RSpec 3 : Testing models and allow_blank

ruby-on-rails - 为什么在 Rails 中使用 %w[]?

mysql - 无法输出涉及 Sequel 中日期的 MySQL 表

ruby-on-rails-3 - Rails 3.2 + Devise 2.1 + OmniAuth + Backbone.js 身份验证

ruby-on-rails - "Agile web development with rails"书 : CSS not applied

ruby-on-rails - 如何以编程方式管理 Rails 2.3.x i18n 语言环境?

ruby-on-rails - Capistrano 和 Carrierwave

mysql - 使用 ruby​​ on rails 事件记录插入多条记录

ruby-on-rails - current_user 和 active_admin

ruby-on-rails - 将 exec 与 heroku bundle 在一起 - 有必要吗?