我想在表格中添加一个新字段。
我的用户模型中的新“secret_code”字段应该等于 Digest::SHA1.hexdigest([Time.now, rand].join)[1..12]。
我要做的是生成一个迁移,该迁移会将字段添加到表中,并使用(某种)唯一的“secret_code”填充我现有的用户。
class AddSecretCodeToUsers < ActiveRecord::Migration
def self.up
add_column :users, :secret_code, :string
User.update_all ["secret_code =?", Digest::SHA1.hexdigest([Time.now, rand].join)[1..12]]
end
def self.down
remove_column :users, :secret_code
end
end
问题在于,此迁移使用相同的密码填充所有现有用户!
一种解决方案是不使用 update_all 并运行一个循环来获取每个用户并向每个用户发送更新,但在这种情况下,我的迁移将非常缓慢。
有没有办法将“唯一”随机值发送到 update_all 方法?
谢谢,奥古斯托