2016-11-11 75 views
1

我需要幫助來使用ActiveAdmin配置CanCanCan。我還有其他一切工作,包括設計。我可以使用設計來限制菜單,但是如果您知道該URL可以表示進行編輯,您仍然可以編輯該資源。我想限制一個普通用戶編輯/創建任何資源,但它似乎不起作用。需要幫助來配置CanCanCan for activeadmin

Active_Admin.rb

config.cancan_ability_class = ActiveAdmin::CanCanAdapter 

Ability.rb(簡單開箱)

class Ability 
    include CanCan::Ability 

    def initialize(user) 
    # Define abilities for the passed in user here. For example: 
    # 
     # user ||= User.new # guest user (not logged in) 
     if user.admin? 
     can :manage, Student 
     else 
     can :read, Student 
     end 
end 
end 

用戶模型。

admin:boolean 

如果我登錄的用戶不是管理員,我仍然可以創建/編輯/刪除,我只是想限制他們只讀。

請幫我解決這個唯一需要完成的功能。

在此先感謝

回答

3

更改此認爲:

config.authorization_adapter = ActiveAdmin::CanCanAdapter 
config.cancan_ability_class = Ability 

authorization_adapter告訴活躍管理的適配器應該使用。 cancan_ability_class告訴適配器應該使用哪個類。

如果仍然不起作用,請嘗試將Ability重命名爲AdminAbility

+1

感謝您回覆。我添加了能力類,但是現在它進入永久循環,並且說即使它是,localhost也不會啓動。 我也重命名爲AdminAbility類,但它給了我未初始化的常量AdminAbility(NameError)在服務器上啓動 – Waqas

+0

嘿,只是爲了讓我知道後,我玩了更多,我得到它的工作,你的答案是正確的,我是剛剛得到白頁,當我檢查日誌時,表示沒有該頁面的權限,我認爲這是一個循環,但它沒有。謝謝 – Waqas