2011-02-11 5 views
1

アプリケーションには、3つの異なるアカウントタイプのいずれかを持つユーザーがあります。小、中、大と呼ぶことにしましょう。レールビューに 'limits'を設定する

私は、アカウントの種類によって制限を設定する最も良い方法を見つけようとしています。私はカンカンに見えたが、私はほとんどのようなものをやっているつもりのに対し、それだけなど、リードのような基本的な認証オプションを持って管理しているようだ:

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

これを行うための最善の方法は何ですか?私はCancanがこれには理想的ではないと考えて正しいのだろうか?

すべての制限を設定し、すべてのチェックを実行するモデルクラスを作成してから、ApplicationHelperにメソッドを追加してそのクラスを呼び出すと、ビューが呼び出されます。

これは合理的であるか悪いと思われますか?より良い方法がありますか?

+0

投票があった場合、私は合理的に投票します –

答えて

1

CanCanは、ユーザーのために定義された能力に基づく認可のためのものです。おそらく、説明したようなクォータタイプのシステムでは望んでいないでしょう。難しい部分は、実際の使用状況を追跡している

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

、それはあなたがやろうとしているかに依存します:あなたはこのようなヘルパーを書くことができ、現在の使用状況の追跡とユーザモデルにおけるユーザのクォータの両方を保ったと仮定すると、あなたのアプリケーション内で。

CanCanを使用してブロック条件を持つ能力を定義することはできますが、本当に必要なIMHOは複雑です。

関連する問題