ruby-on-rails - 如何在 RoR 中生成唯一的匿名用户名?

标签 ruby-on-rails

我想在创建我的用户模型实例时生成唯一的匿名用户名。理想情况下,如果我不指定任何用户名,它将默认设置。

例如,当我执行 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/

相关文章:

ruby-on-rails - Postgres 范围字段 + Rails 表单

ruby-on-rails - 包含文件 ruby Selenium

ruby-on-rails - 从字符串中删除字符序列

ruby-on-rails - ActiveAdmin - 使用 current_admin_user 来过滤可用的操作

mysql - ruby rails : How do I execute a function before saving to the database?

ruby-on-rails - Rails 响应主体中的奇怪额外字符

Mysql2::Error: # MySQL 客户端未连接 — Rails 6.0.2.2 with rspec; Ruby 2.6.4 mac os Catalina + Mojave

ruby-on-rails - 如何避免短路评估

ruby-on-rails - Capistrano 错误:Sprockets::FileNotFound:找不到文件 'bootstrap-sprockets'

ruby-on-rails - Rails select_tag onchange ajax 请求