UI中的CanCanCan能力查看

CanCanCan Ability Viewing in the UI

我正在为 rails 应用程序中具有不同角色类型的用户处理大量功能。这是与 CanCanCan gem.

它已经变得相当大,我有一些非开发用户希望能够看到 运行-down 不同用户的能力。如何在用户界面上表示现有功能?

class MyUserAbilityController < ActionController::Base

  def show
    @abilities = current_user.abilities
  end

  def index

    @full_abilities = Hash.new

    Role.all.each do |role|
      @full_abilities[role.name] = role.abilities
    end

  end

end

然后传递给视图?

此外,虽然不是必需的,但有没有办法从外部源动态更改或更改 CanCanCan 能力?

我现在一直在终端中使用它,最终目标是能够在管理用户界面上进行一些基本的规则设置(不是创建,但可能将“可以”更改为“不能”)带有单选按钮。

-施瓦德

我决定开发一个 gem 来解决这个问题,它仍在开发中,但很快就会适用。叫做CanCanCanSee。

Check it out here

它为您提供了 CanCanCanSee.all_abilities 方法来呈现现有能力和角色的散列。

此外,如果你想 运行 从终端(像你使用 rake routes 一样思考)你的能力的漂亮打印版本,你有 CanCanCanSee.pretty_print_abilities

谢谢!