Rails: CanCanでアクションごとに権限を設定する方法

  • 8
    Like
  • 0
    Comment
More than 1 year has passed since last update.

次のように指定する。

app/models/ability.rb
def initialize(user)
  can :update, ExampleClass
  can :create, ExampleClass
end

CRUD ( Create / Read / Update / Delete ) の四種類で指定しよう。

厳密には「アクション名」ではないので、edit / new / index / show は存在しなから注意だ。
たとえば CanCan で update を許可すると、 Rails では update と edit アクションの二つが許可されるぞ。


対応は次の通り。( CanCanでの指定 => Rails でのアクション)

  • read => index + show
  • update => update + edit
  • create => new + create
  • delete => delete
  • manage => 上記のアクション全て

-「CanCan アクション 権限」でググってもヒットしなかったのでメモ。
- Cancanで管理者と一般ユーザを簡単にわける方法 - ユーザタイプごとの役割の設定(認可)を参考にした。