2012-04-25 27 views
0

我有一個應用程序使用以下模型:人員,項目,項目管理員。Rails - 允許人們添加記錄之間的關聯,但只允許管理員刪除它

人與項目之間存在HABTM關聯。每個項目都有一個ProjectAdminsList,每個項目可以有很多人。

屬於每個項目的人可以添加其他人,但是我想限制將此關聯移除到屬於ProjectAdminsList的人。在視圖中限制這一點很簡單,但在控制器中執行它的最佳方式是什麼?我正在尋找這方面的一般指導。

回答

0

您需要某種授權系統,我建議您看看Ryan Bates(RailsCasts人員)編寫的CanCan gem,您可以從Authorization with CanCan開始觀察RailsCast,然後查看真正優秀的文檔。

這裏的概述:

  • 它只是需要一個current_user方法來確定當前登錄的用戶
  • 你寫在一個文件中(ability.rb
  • 您使用的授權規則在視圖層中的can?方法來檢查用戶是否可以做某些操作
  • 您在控制中調用load_and_authorize_resource使CanCan自動檢查t他基於ability.rb文件進行授權。

當然,我只是抓了表面,說文檔是非常好的。

+1

我已經實現了一些基本的權限檢查,但CanCan看起來非常好。將嘗試一下。 – ntlk 2012-04-26 12:38:42

相關問題