2012-08-02 72 views
1

我想解決我在我的網站上設置管理員時遇到的問題。這是我的路線的簡單版本。設置管理員用戶來編輯用戶,文章,協作者

resources :users 
    resources :articles 
    resources :collaborators 
end 

resources :admin 

Admin用戶是非常相似的合作者,因爲他們可以編輯和創建文章,但管理員有能力也c.r.u.d.每個用戶的用戶,協作者和文章。協作者只能使用c.r.u.d.與已被分配到的用戶相關聯的文章。

有些令人困惑的部分是如何設置Admin用於CRUD操作的控制器和視圖。截至目前我試圖實現的方式是在admin /中創建單獨的CRUD視圖。問題在於功能對於協作者來說是如此類似,我覺得它可能是DRYER。

任何人都知道實現這樣的最基本的方式?謝謝!

更新:我想更新此說,這是超級簡單的谷歌管理工具的軌道。我更想知道如何在沒有管理工具的情況下實現這一點,或者如果這聽起來像是一個壞主意,爲什麼?

+1

你有沒有考慮過像[CanCan](https://github.com/ryanb/cancan/)這樣的授權寶石,或者像[The Role](https://github.com/the - 老師/ the_role)? 通過使用這些,您可以爲所有角色類型提供一個視圖,並讓寶石幫助您進行授權。 – 2012-08-02 07:52:41

+0

我並不太在意授權,因爲我是關於編輯內容的視圖結構。我一定會考慮CanCan和身份驗證的角色,但希望爲管理員找到一個好的結構。 – botbot 2012-08-03 07:42:45

回答

1

我想出的答案是創建一個管理員字段爲true/false的合作者。我也建立了CanCan,它的工作非常好。

這裏是我的康康舞ability.rb

高清初始化(用戶)

if user.admin? 
    can :manage, :all 
else 
    can :manage, Article, :id => user.article_id 
    cannot :index, Article 
end 

我只是用「用戶」,因爲它更具可讀性,比合作者更短,基本上用戶...

0

嘗試ActiveAdmin (http://activeadmin.info/)。我認爲這是爲您的應用程序構建管理員後端最簡單的方法。

+0

雖然你可能是完全正確的,我應該使用這樣的系統,但我對此並不感到興奮的部分原因是因爲這些系統中的某些系統有如此多的花裏胡哨......那麼當它需要定製時這是一個痛苦。我一定會看看它是否能滿足我的基本需求。理想情況下,我希望與普通用戶或協作者擁有*幾乎相同的界面來創建用戶,文章和協作者。 – botbot 2012-08-02 07:44:24

相關問題