【Rails6】usersテーブルの値をパスワードなしで編集・更新する方法

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

これだけで、ユーザー情報の編集時はパスワードなしで、更新できます。

他にもこんな記事があります!