我想在创建我的用户模型实例时生成唯一的匿名用户名。理想情况下,如果我不指定任何用户名,它将默认设置。
例如,当我执行 User.create!() 时,我希望将用户名列设置为“anonymous123”,其中 123 是从序列中获取的唯一数字(该实例的 id 列的值会好的)。
最佳答案
结合几个答案中的例子就可以了
class User < ActiveRecord::Base
before_create :set_anonymous_username
def set_anonymous_username
username = "anonymous#{User.last.id + 1}" if username.nil?
end
end
我在这里使用了 before_create,因为我希望您只需要在第一次创建用户之前设置一个匿名用户名。每次保存模型时都会调用 before_save,这可能是不必要的开销,但两者都可以工作
关于ruby-on-rails - 如何在 RoR 中生成唯一的匿名用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1248954/