6

私は RoR プロジェクトに取り組んでおり、私の目的のために推奨されたこの新しい宝石、Rolify について少し混乱しています。私が理解しているように、rolify は CanCan とほぼ同じことを行いますが、能力 (rolify の役割) をデータベースに永続化します。ただし、Rolify wiki のいたるところで、CanCan で Rolify を使用する手順を目にします。

基本的に、RolifyとCanCanの違いは何ですか?いつ一方を使用し、もう一方を使用しないのですか?

4

2 に答える 2

7

CanCan は、アプリケーションの観点から承認を管理するために使用され、X コントローラー/アクションを X ユーザーに制限できるようにします。

より詳細な制御を行いたい場合は、Rolify を使用します。ローリファイ、シンプルを超えて

if user.role == :super_admin
  # do something pretty cool stuff
elsif user.role == :admin
  # do some more awesome stuff

リソースにロールを追加できるようにすることで。ユーザーが Gaming Board でモデレーターの役割を持てるようにするフォーラム アプリケーションがあるとします。roify を使用して

user = User.find(2)
user.add_role :moderator, Forum.where(type: 'Gaming')

Rolify では、インスタンスの代わりにクラス自体を使用して、クラスに対してこれを行うこともできます (ユーザーをすべてのボードのモデレーターにしたい場合)。

user = User.find(2)
user.add_role :moderator, Forum

その後、リソース/クラスを簡単にクエリして、誰が何にアクセスしたかを調べることができます。役割の範囲を管理するのに役立つことに加えて。

于 2014-01-27T21:22:24.187 に答える
5

CanCan は、特定のアクションを実行できるユーザーと実行できないユーザーに関するルールを設定できる承認ライブラリです。

Rolify は、Cancan承認ルールで使用できるロールを作成するのに役立つロールライブラリです。

于 2014-01-27T21:20:25.773 に答える