2011-02-11 92 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定义一个具有阻挡条件的能力,但是恕我直言,它更复杂,然后真正需要。