2011-02-11 88 views
1

應用程序具有可以擁有三種不同帳戶類型之一的用戶。我們稱之爲小型,中型,大型在導軌視圖中設置「限制」

我試圖找出根據帳戶類型設置限制的最佳方法。我看着黃燦燦的,但它似乎只是有基本身份驗證選項,如讀取,管理等等,而我主要將做的事情,如:

if user_has_hit_upload_limit? 
    # display a message 
else 
    # display the upload form 

什麼是做到這一點的最好方法是什麼?我是否認爲康康對此不理想?

我開始製作一個模型類,它設置所有限制並執行所有檢查,然後向ApplicationHelper添加方法以調用該類,然後由視圖調用該類。

這是否合理或不好?有沒有更好的辦法?

+0

如果有投票,我會投票合理 – 2011-02-11 02:12:18

回答

1

CanCan是基於爲用戶定義的功能進行授權的。這可能不是您想要的像您所描述的配額類型系統。假設你一直跟蹤當前使用情況和用戶的用戶模型中的配額都可以編寫這樣的幫手:

def user_has_hit_upload_limit? 
    current_user && current_user.upload_count < current_user.upload_limit 
end 

困難的部分是實際跟蹤使用情況,這將取決於你正在嘗試做的在你的應用中。

你仍然可以使用CanCan定義一個具有阻擋條件的能力,但是恕我直言,它更復雜,然後真正需要。