我在我的用户表中创建了一个新的列(标记),并且我想要为每个现有用户对此列生成一个值。我补充说明的是:为每个用户添加一个新创建的列
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