Я хотел бы добавить новое поле в таблицу.
Мое новое поле «secret_code» в моей модели User должно быть равно Digest :: SHA1.hexdigest ([Time.now, rand] .join) [1..12].
Я пытаюсь создать миграцию, которая добавит поле в таблицу, а также заполнит моих существующих пользователей (своего рода) уникальным «секретным кодом».
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?
Спасибо,
Аугусто