[Rails5]Deviseでsign up時に任意のカラムを入力必須にしたい

結論

ストロングパラメーターを処理ごとに記述する

application_controller.rb

def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:username])
end

他のタイミング

・sign_in デフォルトでemailなどの認証キーを許可(Devise::SessionsController#create)
・sign_up デフォルトでemailなどの認証キーとパスワードとパスワード(確認用)を許可(Devise::RegistrationsController#create)
・account_update デフォルトでemailなどの認証キーと現在のパスワード、新しいパスワードと新しいパスワード(確認用)を許可(Devise::RegistrationsController#update)

同時に指定する

方法1

def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:username])
devise_parameter_sanitizer.permit(:account_update, keys: [:username, :useraddress])
end

方法2

def configure_permitted_parameters
keys = {sign_up: [:username], account_update: [:username, :useraddress] }
keys.each_pair do |action, key|
devise_parameter_sanitizer.permit(action, keys: key)
end
end

参考

Devise -Github-


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です