Userテーブルのカラムをpasswordなしで更新しようと思ったときに、更新ができずに手間取ってしまったのでメモ。
user modelのバリデーションをいじるだけ
オプションとしてon: :コントローラー
を指定すればよいらしい。
- 変更前
validates :password,
presence: true,
length: { minimum: 8 },
format: { with: /\A[a-zA-Z0-9]+\z/ }
validates :password_confirmation,
presence: true
- 変更後
validates :password,
presence: true,
length: { minimum: 8 },
format: { with: /\A[a-zA-Z0-9]+\z/ },
on: :create
validates :password_confirmation,
presence: true,
on: :create
これだけで、ユーザー情報の編集時はパスワードなしで、更新できます。