web-dev-qa-db-ja.com

before_actionからコントローラーを除外する

before_actionフィルターを使用してauthenticateを呼び出します。これは、要求されたページにアクセスする権限がない場合にユーザーをホームページにリダイレクトするメソッドです。

テスト目的のために、このステップからページを除外したいと思います。

これまで見てきたことは、exceptを使用して、特定のコントローラーアクションをbefore_actionフィルターの対象から除外できることです。

before_action :authenticate, except: :demo_login

次のように、一度に複数のアクションを除外することもできます。

before_action :authenticate, except [:demo_login, :demo_show]

特定のコントローラーのすべてのアクションを除外するにはどうすればよいですか?

17
Matt C

関連するコントローラーでskip_before_action :authenticateを使用します。

このメソッドの形式はbefore_actionと同じなので、特定のコントローラーアクションの:authenticateの呼び出しをスキップする場合は、次を使用します。

skip_before_action :authenticate, only: [:show, :index]

except:キーワードも使用できます。

35
Anthony E