我在我的用戶表中創建了一個新的列(標記),並且我想要爲每個現有用戶對此列生成一個值。我補充說明的是:爲每個用戶添加一個新創建的列
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+\-.][email protected][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 }
我怎麼可以解決這個?
你可以發佈這個模型的驗證嗎? –
密碼是虛擬屬性,不存在 – medBo
@DougR更新我的問題 – medBo