2012-09-14 51 views
2

我想根據用戶角色有條件地更改ActiveAdmin中資源的標籤。我想保留管理員名稱的默認複數形式,但對於普通用戶,我需要更改名稱。有條件地更改資源名稱Activeadmin

I.e.我有一個資源Users,我想更改爲My Account爲普通用戶(因爲他們不會看到#index)。

我試圖像

ActiveAdmin.register User do 
    menu :if => proc {if !current_user.admin? 
    menu :label => "My Account" 
    else 
    menu :label => "I hate Users" 
    end} 

任何人都知道如何有條件地名稱的資源?

謝謝!

回答

0

這工作:

menu :label => proc { true ? "I Hate Users" : "My Account" } 

但隨後從PROC內訪問

current_admin_user 

current_user 

對象將不能正常工作。我還沒有找到從ActiveAdmin :: MenuBuilder範圍內獲取登錄用戶對象的方法。有建議,請參閱https://stackoverflow.com/a/2513456/790737,你succesfull登錄後設置

Thread.current 

的變量。我想你將不得不接入devise的後驗證工作。祝你好運。