【发布时间】:2015-02-12 17:48:56
【问题描述】:
随着 Facebook API 停止用户名检索,我需要在 Rails 中通过添加以下字段来创建用户名:
User.username = first_name + last_name + rand(99999)
你知道怎么做吗?
【问题讨论】:
标签: mysql ruby-on-rails ruby ruby-on-rails-4
随着 Facebook API 停止用户名检索,我需要在 Rails 中通过添加以下字段来创建用户名:
User.username = first_name + last_name + rand(99999)
你知道怎么做吗?
【问题讨论】:
标签: mysql ruby-on-rails ruby ruby-on-rails-4
找到您要更新的所有用户,并对其进行迭代。在这种情况下,我将以 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
【讨论】: