gpt4 book ai didi

ruby-on-rails - 如何检查用户名是否存在并创建一个新用户名?

转载 作者:太空宇宙 更新时间:2023-11-03 18:16:28 26 4
gpt4 key购买 nike

我想用user.name创建一个user,以后可以更改。 user.name 是唯一的,我生成的名称以 "user" 开头,后跟随机数。这是我的模型的样子:

class User < ActiveRecord::Base
before_validation :set_a_name, on: :create

validates :name, presence: true,
uniqueness: { case_sensitive: false }

private

def set_a_name
if self.name.blank?
random_user_number = rand.to_s[2..11]
self.name = "user#{random_user_number}"
end
end
end

这确实创建了一个名称类似于 "user12345634" 的用户,但我想检查该名称是否已存在,如果存在则执行不同的名称。我怎么能这样做?

最佳答案

您可以通过以下方式实现:

def set_a_name
while self.name.blank? or User.find_by_name(self.name).present?
random_user_number = rand.to_s[2..11]
self.name = "user#{random_user_number}"
end
end

希望对您有所帮助!

关于ruby-on-rails - 如何检查用户名是否存在并创建一个新用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25297882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com