Q&A
実現したいこと
has_secure_passwordを用いたUserテーブルのレコードに対しパスワードを変更する。
前提
Ruby on Railsでhas_secure_passwordを使ったアカウントを管理するユーザーテーブルを用いています。
発生している問題・エラーメッセージ
has_secure_passwordを用いたUserテーブルのpasswordの変更が後からできません。
createする場合は:password, :password_confirmationを入力するとそれがハッシュ化されてpassword_digestカラムに格納されます。
パスワードを後から変更したい場合、:password, :password_confirmationのカラムがなく、またpassword_digestに直接書き込もうとした場合、ハッシュ化されていないものがそのまま入ってしまいます。ただしくpassword_digestを入力する場合はどのようにすればいいでしょうか??
該当のソースコード
db/schema.rb ActiveRecord::Schema.define(version: 2023_02_20_180422) do create_table "users", id: false, force: :cascade do |t| t.string "uuid", null: false t.string "name", null: false t.string "email", null: false t.string "password_digest", null: false t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false end
models/user.rb class User < ApplicationRecord has_secure_password validates :name, presence: true validates :email, presence: true, uniqueness: true validates :password_digest, presence: true self.primary_key = "uuid" end
補足情報(FW/ツールのバージョンなど)
ruby '2.7.7'
rails 6.0.6
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/02/24 15:08
2023/02/25 09:31