2016-04-13 27 views
3

我正在爲用戶在rails應用程序上使用不同角色類型的用戶提供大量的能力列表。這是CanCanCan的寶石。在用戶界面中查看CanCanCan的能力

它已經變得非常大,我有非dev設備的用戶希望能夠看到不同用戶的能力下降。我如何在用戶界面上表示現有的功能?

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

我一直在終端上玩弄它,最終目標是能夠在管理員用戶界面上擁有一些基本的規則設置(不是創建,但可能會更改'can'到'不能')單選按鈕。

-Schwad

+0

與您的問題並不真正相關,但如果這是一個較新的項目,您可能應該使用CanCanCan gem。它是現在不存在的CanCan gem的維護叉https://rubygems.org/gems/cancancan – bigtunacan

+0

我同意,cancancan正在發生。 – Schwad

回答

1

我已決定製定寶石來解決這個問題的答案,它仍處於發展非常多,但很快就適應目的。它被稱爲CanCanCanSee。

Check it out here

它帶給你的方法CanCanCanSee.all_abilities以使現有的能力和角色的散列。

此外,如果你想運行從終端的能力相當印版(覺得像你這樣做rake routes),你必須CanCanCanSee.pretty_print_abilities

謝謝!

相關問題