ActiveRecord::NotNullViolationt

ActiveRecord::NotNullViolationt

...postal_code doesn’t have a default value...

 

今度はこんなエラーが。

つまり"postal_code"がnull(空)で登録されようとしてることでのエラー。

 

原因は

1、カラム名の間違い

2、ストロングパラメーターに入ってない

3、(今回はformオブジェクトだったので)modelファイルにattr_accessor で値を設定してない

4、同じmodelファイルに作ったsaveメソッドにデータを保存する処理が記述されていない

 

と思い確認してみるとずべて問題なかった。

 

ふと思い出し、ターミナルでも確認してみると

Unpermitted parameters: :hoge, :postal-code, :building

問題あった。

 

ここでは本来"postal_code"のはずなのにアンダーバーがハイフンになっていた。

調査の結果、下記のtext_field の名称に誤りがあった。

 

<%= f.text_field 'postal-code', class:"input-default", id:"postal-code", placeholder:"例)123-4567", maxlength:"8" %>

 

ほんと、アンダーバーとハイフンは間違えやすいので気をつけよう。

 

ということでもし

 

ActiveRecord::NotNullViolationt

..~ doesn’t have a default value...

 

のようなエラーが起きたら

1、カラム名の間違い

2、ストロングパラメーターに入ってない

3、(今回はformオブジェクトだったので)modelファイルにattr_accessor で値を設定してない

4、同じmodelファイルに作ったsaveメソッドにデータを保存する処理が記述されていない

 5、ヘルパーメソッド内ののtext_field の値が間違っている

 

と調べていこう。