0

我正在使用 rails_admin、devise 和 cancan。

用户有很多角色。

我设置了一个管理页面,具有管理员角色的用户可以在其中管理用户。但是,管理员无法管理角色。

创建或编辑用户时,不会列出角色。

如何允许管理员在不让他们编辑或创建角色的情况下向用户添加角色?

这是我的能力档案

class Ability
  include CanCan::Ability

  def initialize user
    if user && user.admin?
      can :access, :rails_admin
      can :dashboard
      cannot :manage, Role
      can :manage, User
    else
      cannot :access, :rails_admin
    end
  end
end

我尝试在 rails_admin 配置中显式覆盖关联范围,但这根本没有帮助:

  field :role do
    associated_collection_scope do
      Proc.new do |scope|
        scope = scope
      end
    end
  end
4

1 回答 1

0

我能够通过添加使其工作,can :index, Role但这并不是真正需要的,因为它使角色出现在侧边栏中。

class Ability
  include CanCan::Ability

  def initialize user
    if user && user.admin?
      can :access, :rails_admin
      can :dashboard
      can :index,  Role
      can :manage, User
    else
      cannot :access, :rails_admin
    end
  end
end
于 2013-07-26T01:49:05.457 回答