CanCanCan能力在用户界面中查看

时间:2016-04-13 13:30:56

标签: ruby-on-rails ruby cancan cancancan

我正在为rails应用程序上具有不同Role类型的用户提供大量功能。这是CanCanCan的宝石。

它已经变得非常庞大,我有非开发用户希望能够看到不同用户的能力减弱。如何在用户界面上表示现有的能力?

即。

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能力?

我现在一直在终端玩它,最终的目标是能够在管理员用户界面上使用无线电进行一些基本的规则设置(不是创建,但可能会改变'可以'不能')纽扣。

-Schwad

1 个答案:

答案 0 :(得分:1)

我决定开发一个宝石来解决这个问题,它仍然处于开发阶段,但很快就达到了目的。它被称为CanCanCanSee。

<强> Check it out here

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

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

谢谢!