2011-06-19 2 views
1

最新のrails3プロジェクトでcancanを使用する際の一般的なアドバイスやヒントを探しています。多くの役割を持つCancanのベストメソッド

私たちは社内で使用する注文システムを構築しており、クライアントへのアクセスを制限しています。これらを含める:できるかどう

<%:私たちの見解で

Superadmin 
Superaccounts 
Supertechs 
Clientadmin 
Clientaccounts 
Clienttechs 

は、我々は以前の組み合わせを使用しましたか? :?current_user.role_ids.include場合、ユーザー%>

そして

<%を管理する(2)%>

私は後者を疑うことは悪い習慣であると見つけるいただければ幸いですどのように最高の同じ方法を達成する。

また、多くの役割に対処する方法について少し混乱しています。

複数のユーザーグループ(スーパー管理者やスーパーユーザー)にアクセスするにはどうすればよいですか。

答えて

0

私は

<% if current_user.role_ids.include?(2) %> 

を交換するための最良のオプションは、例えば、モデル内の各ロールのメソッドを作成することだと思う:あなたからのクエリロジックを削除します

class Company < ActiveRecord::Base 
    . 
    . 
    def super_admin? 
    self.role_ids.include?(2) 
    end 
    . 
    . 

この方法ビューを作成してコントローラに保持し、次の操作を行うだけで役割にアクセスできます。

<% if current_user.super_admin? %> 

はそれを助けてくれると期待しています:)

+0

驚いたことに、私はちょうどこれがtumbleweed賞を受賞したことを発見しました。私はあなたがこれを行うことができるか分からなかった!複数のロールを組み込む方法や、上向きに継承する方法はありますか? Jx –

関連する問題