私は RoR プロジェクトに取り組んでおり、私の目的のために推奨されたこの新しい宝石、Rolify について少し混乱しています。私が理解しているように、rolify は CanCan とほぼ同じことを行いますが、能力 (rolify の役割) をデータベースに永続化します。ただし、Rolify wiki のいたるところで、CanCan で Rolify を使用する手順を目にします。
基本的に、RolifyとCanCanの違いは何ですか?いつ一方を使用し、もう一方を使用しないのですか?
私は RoR プロジェクトに取り組んでおり、私の目的のために推奨されたこの新しい宝石、Rolify について少し混乱しています。私が理解しているように、rolify は CanCan とほぼ同じことを行いますが、能力 (rolify の役割) をデータベースに永続化します。ただし、Rolify wiki のいたるところで、CanCan で Rolify を使用する手順を目にします。
基本的に、RolifyとCanCanの違いは何ですか?いつ一方を使用し、もう一方を使用しないのですか?
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
その後、リソース/クラスを簡単にクエリして、誰が何にアクセスしたかを調べることができます。役割の範囲を管理するのに役立つことに加えて。
CanCan は、特定のアクションを実行できるユーザーと実行できないユーザーに関するルールを設定できる承認ライブラリです。
Rolify は、Cancan承認ルールで使用できるロールを作成するのに役立つロールライブラリです。