Posted at

if: :devise_controller?がわかった!

More than 3 years have passed since last update.

class ApplicationController < ActionController::Base

# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
befofe_action :configure_permitted_parameters, if: :devise_controller?
protect_from_forgery with: :exception

def configure_permitted_parameters
devise_parameter_sanitizer.for(sign_up).push(:nickname, :avatar)
end

def after_sign_out_path_for(resource)
'/users/sign_in' # サインアウト後のリダイレクト先URL
end
end

このコードについて以下のことがわかった。

befofe_action :configure_permitted_parameters, if: :devise_controller?

protect_from_forgery with: :exception

:devise_contoller?とはdeviseを生成した際にできるヘルパーメソッドの一つで、deviseにまつわる画面に行った時に、という意味がある。こうすることで全ての画面でconfigure_permitted_parametersをするのを防いでいるのである。