A Little Each Day

note to self

Rails5でdeviseのStrong Parametersがエラーになる

こんにちは。本日はRails5で使用しているdeviseで発生したストロング・パラメーターのエラーの解決策についてです。

deviseでエラーが発生

Rails5でも従来通りにdeviseのStrong Parametersを設定していました。

 # application_controller.rb

before_action :configure_permitted_parameters, if: :devise_controller?

private

def configure_permitted_parameters
  devise_parameter_sanitizer.for(:sign_up) << :name
end


そしてローカルで動かしていたら以下のようなエラーがでました。

undefined method `for' for #<Devise::ParameterSanitizer:***>


なんでだろうと思い、ちょっと小一時間ハマってしまった。。


解決策

エラーにもあるように「for」が原因のようです。

devise4からは「for」ではなく「permit」を使うようになりました。

# application_controller.rb

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


これでサーバーを再起動すればエラーなく今まで通りに動きました。



本日は以上です。