Ответ 1
Ну, легкая часть - это добавление нового столбца. На оболочке:
rails generate migration AddUnsubscribeKeyToUsers unsubscribe_key:string
rake db:migrate
Кроме того, вы захотите сделать этот новый атрибут доступным в вашей модели пользователя:
приложение/модели/user.rb
attr_accessible :unsubscribe_key #along with all your other accessible attributes
Затем вам нужно будет добавить уникальные ключи. Вы можете написать код SQL для этого или создать ruby script, который вы можете запустить в консоли rails.
Библиотека /add _unique_keys.rb
module AddUniqueKeys
KeyGenCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
extend self
def addUnsubscribeKeysToAllUsers
users = User.all
users.each do |u|
u.update_attributes(:unsubscribe_key => generateKey(18))
end
end
def generateKey(keyLength)
key = ""
keyLength.times do
key += generateKeyCharacter
end
key
end
def generateKeyCharacter
KeyGenCharacters[rand(KeyGenCharacters.length)-1]
end
end
Теперь вернитесь к оболочке и введите rails console
. В командной строке ruby:
>>require "add_unique_keys.rb"
=> true
>>AddUniqueKeys.addUnsubscribeKeysToAllUsers
=> #Should print out array of users
Если все пойдет хорошо, ваш новый столбец должен быть заполнен случайными строками.