maeshimaの日記

メモ書きです

今週のrailscasts

decraretive authorizationよりもっと軽い認可プラグインcancanについて。

Railscasts - Authorization with CanCan
ryanb's cancan at master - GitHub

認証部分はauthlogicなどの、current_userメソッドを定義しているプラグインを導入していることが前提なようだ。

  • models/ability.rbにAbilityクラスを作るだけで使えるようになる(Userモデルに対しては何もしなくてもいいみたい)
  • initializeメソッド中にcanメソッドを使って権限を定義
  • canメソッドのブロック中に「自分の書いたコメントなら修正できる」みたいなロジックも書ける
  • can?で権限があるかどうかをチェック
  • RESTfulな作りならload_and_authorize_resourceメソッドをコントローラで宣言するだけで、対応するアクションの権限があるかどうか自動で見てくれる

authlogicとかRESTfulな作りであるとか前提条件が必要なものが多いけど、それらをクリアしてるなら使ってみる価値はありそうだと思った