Rails5 管理者によるユーザー情報編集


管理者なんだけどユーザー情報編集時にpasswordのバリデーションでエラー

Userにadminカラムを追加して管理者を作りました。
ユーザー情報を編集して更新しようとした所で
よくある
has_secure_password
validates :password, presence: true, length: { minimum: 6 }

このバリデーションに引っかかって更新ができず、、、
かといってバリデーション消すのはダメだし、、
管理用のgem導入するにもすでに管理者機能結構作成した後だから
なんとか使わずに行きたいな。。。

と思って検索したらon:を使うことでバリデーションの条件を追加できるのですね。
今回は編集更新にはバリデーション掛からなくていいので
has_secure_password
validates :password, presence: true, length: { minimum: 6 }, on: :create

として新規ユーザー登録の時だけバリデーション掛かるようにした所更新できるようになりました。

参考記事

https://qiita.com/Shantti-Y/items/19ea23b81f3421063fc5
https://qiita.com/kadoppe/items/061d137e6022fa099872