逆の言い方をするとDeviseの画面のみ認証を行わない方法です。
認証チェックを全部のページにやりたいけれど1つ1つのコントローラーに設定していくのは面倒すぎるので一発で全部やっちゃおーぜということです。
でもDeviseのログイン画面とか諸々まで影響するのでそれは避けたい。その方法がこちら。
ApplicationControllerに設定します。ただし、DeviseController系のコントローラーの場合は除外、というナイスな方法です。
1 2 3 4 | class ApplicationController < ActionController::Base check_authorization :unless => :devise_controller ? ...(略) end |
Devise以外のコントローラーで認証を行いたくない場合は、skip_authorization_checkを設定します。トップ画面は認証いらないから除外したいという場合は以下のようにします。
1 2 3 4 5 6 | # coding: utf-8 class TopController < ApplicationController skip_authorization_check def index end end |