随着 Facebook API 停止用户名检索,我需要通过添加以下字段在 Rails 中创建用户名:
User.username = first_name + last_name + rand(99999)
关于如何解决这个问题有任何想法吗?
最佳答案
找到您要更新的所有用户,并遍历他们。在这种情况下,我将更新每个用户,每批 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
关于mysql - 根据在 Rails 中创建时添加的其他字段更新 MySQL 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28484342/