随着Facebook API停止用户名检索,我需要在Rails中创建一个用户名,方法是将以下字段添加到一起:
User.username = first_name + last_name + rand(99999)
有关如何解决这个问题的想法吗?
答案 0 :(得分:0)
查找要更新的所有用户,然后通过它们进行迭代。在这种情况下,我将以1000个批次更新每个用户。有关find_each
的文档User.find_each do |user|
username = "#{user.user_first_name}_#{user.last_name}_#{rand(99999)}"
user.update_attribute(:username, username)
end
对于新用户,只需在创建回调之前添加一个用户模型
before_create :generate_username
....
def generate_username
begin
self.username ="#{self.user_first_name}_#{self.last_name}_#{rand(99999)}"
end while User.exists?(:username => self.username)
end