无法为has_many选择选项

时间:2013-07-26 01:44:48

标签: ruby-on-rails-3.2 cancan rails-admin

我正在使用rails_admin,devise和cancan。

用户有很多角色。

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

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

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

这是我的能力档案

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

1 个答案:

答案 0 :(得分: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