【Rails】エラー対処 備忘録

f:id:ume1017:20200917205123j:plain

 

現在プログラミングスクールに通い

70日間でWEBエンジニアになれるよう勉強中です!

 

本日はアプリの実装中に起きたエラーの解決方について

書きたいと思います!

 

◆エラー内容

Mysql2::Error: Field 'nickname' doesn't have a default value:

 

状況としてはdeviseを使用して

ユーザー登録機能を実装してました。

 

ちなみにエラー内容を確認すると

birthdayはデータとして飛んでいました。。

 

◆解決方法

結論から言うと

コントローラでストロングパロメーターを

設置すればOKです!!

 

エラーの原因はdeviseのコントーラーで

デフォルトで設定されてるストロングパロ

メーターにあります。

 

デフォルトだと、

emailとパスワードのみを受け取る仕組みに

なっています。

 

なので別途ストロングパロメーターを設定

してあげれば解決です!

 

僕の場合は下記のように記述して解決しました。

<application_controller.rb>
before_action :configure_permitted_parameters, if: :devise_controller?
 
private
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up,
keys: [:first_name,:last_name,:first_name_kana,
:last_name_kana,:nicknmame,:birthday])
devise_parameter_sanitizer.permit(:sign_in, keys: [:email,:password])
end