rolify (リソース スコーピング付きロール管理ライブラリ) gem と呼ばれる gem があり、 devise と cancan linkでセットアップすることもできます。モデルUserがあると仮定しましょう。
インストール:
gem "rolify"
bundle
rails g rolify:role Role User
役割を追加できます:
user = User.find(1)
user.add_role :admin
小切手:
user.has_role? :admin
リソース インスタンスをスコープとするロールを定義する場合:
user = User.find(2)
user.add_role :moderator, Post.first
そしてあなたの能力.rbで:
if user.has_role? :admin
can :manage, :all
else
can :read, Post
can :write, Post, :id => Post.with_role(:moderator, user).map{ |f| f.id }
end
with_roleメソッドを使用すると、ユーザーがロールを持つ Post インスタンスを制限できることに注意してください