我正在为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
答案 0 :(得分:1)
我决定开发一个宝石来解决这个问题,它仍然处于开发阶段,但很快就达到了目的。它被称为CanCanCanSee。
<强> Check it out here 强>
它为您提供了方法CanCanCanSee.all_abilities
来呈现现有能力和角色的哈希值。
此外,如果你想从终端运行一个漂亮的印刷版本的功能(就像你使用rake routes
一样),你有CanCanCanSee.pretty_print_abilities
谢谢!