我在我的用户表中创建了一个新列(令牌),并且我想为每个现有用户影响该列的生成值。我补充的是:
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)
但是每个用户的新列仍然为零。
当我尝试只保存一个用户时:
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 }
我怎么能解决这个问题?