0

ユーザー テーブルに新しい列 (トークン) を作成し、生成された値を既存のユーザーごとにこの列に反映させたいと考えています。私が追加するものは次のとおりです。

class User < ActiveRecord::Base
  before_save :generate_token

  private
     def generate_token
        self.token = SecureRandom.urlsafe_base64(true, false)
     end

end

それから私はやろうとします:

rails console
> User.find_each(&:save)

ただし、各ユーザーの新しい列はまだゼロです。

1人のユーザーのみを保存しようとすると:

user = User.first
user.save!

それは私にエラーを与えます:

ActiveRecord::RecordInvalid: Validation failed: Password is too short (minimum is 6 characters)

これはユーザーモデルからの私の検証です:

VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false }
has_secure_password
validates :password, length: { minimum: 6 }

どうすればこれを解決できますか?

4

2 に答える 2