ユーザー権限を見ながら、アクセスチェックをしようという目的で、DeviseとCanCanを使ってみています。まだよくわかってないんですが、これは便利そうです。
CanCanでは基本的にモデルのCRUDのURLをチェックする感じのチェックが行われます。
class HogesController < ApplicationController load_and_authorize_resource ...(略) end
しかし、それに合わないようなコントローラーもあります。
各マスターデータ一覧を表示するようなやつです。
class MasterController < ApplicationController ...(略) end
ここでload_and_authorize_resourceを指定すると、対象のMasterというモデルがないのでエラーで落ちます。
対象のモデルが無い場合はどうするのかを調べたところ、本家に書いてありました。
https://github.com/ryanb/cancan/wiki/Non-RESTful-Controllers
class MasterController < ApplicationController authorize_resource :class => false ...(略) end
リソースがないんだからリソースclassをfalseに指定すりゃいいのね。なるほど。