validationのカスタマイズ


概要

個人アプリを作成していく中で、グループ登録が突如できなくなった事象が発生しました

原因は、usersモデルに追加したバリデーションでした
(原因探るために、また一からアプリ作成し述べ4日間も費やしました。。。。)

備忘録として残します!

エラー状況

グループ登録画面


今までできていたグループ登録ができなくなる事象が発生

ログ

ログを見ると、paramsはきちんとデータ取得されているのに、ROLLBACKされています
エラーの内容はinvalid

原因

悪さしているコードは、usersモデルに追記したバリデーションでした

app/models/user.rb
  validates :password, presence: true, length: {minimum: 8 }

パスワード7文字以下はエラーにする記述です。

恐らく、userモデルに追加したバリデーションによって、group登録時にpasswordデータも取得させる必要性が出てきた??のかな??
もし、わかる方がいれば教えてください

解決方法

usersモデルに追加したバリデーションにオプションをつけて解決しました!

app/models/user.rb
  validates :password, presence: true, length: {minimum: 8 },on: :create

user登録時のみにバリデーションが使用される!という意味合いです。

感想

まず、急に登録できなくなり、原因もわからない状況で、一からアプリを作成し直し原因を突き止めた事象です。。。
本当に辛かった
たった11文字のコードを追加するだけで解決しましたが、ある意味得たものは大きかったと考えています

参考

●passwordバリデーションの解決の糸口がわかりました。
https://qiita.com/noriya1217/items/f0e887f3a7b2c7f83722

●バリデーションのオプションについて参考にしました。
https://qiita.com/Shantti-Y/items/19ea23b81f3421063fc5