ruby-on-rails - 当每个用户在 Rails 应用程序中注册时,为他们分配一个随机数

标签 ruby-on-rails ruby

我有一个与设备关联的用户模型。这负责登录/注册我有一个用户信息模型,其中包含姓名、电子邮件、GPA、专业、学院和 token 。用户注册后,他们必须填写一个表单,在其中填写 userinfo 模型中除 token 之外的所有信息。

我想要做的是在用户注册后立即为其分配一个随机的五位整数。这将存储在 token 中。例如,在表单中,用户将姓名填写为“Jason”,电子邮件填写为“[email protected]”,gpa填写为“4.0”,学院填写为“某所大学”。这就是他们填写的全部内容。这就是他们将看到的全部。然后程序会为 token 分配一个随机的五位数字,可能是“16352”。然后我稍后就可以通过该 token 找到该用户。因此,如果有人在“通过 token 查找用户”区域下的索引页中输入“16352”,就会显示该用户。我怎样才能做到这一点?

最佳答案

您可以使用 before_save 回调,该回调在保存到数据库之前为该模型的特定属性设置一个随机数。

在您的模型中,您可以将其定义为 set_random_number 或任何数字,并将其命名为 before_save :set_random_number:

before_save :set_random_number

def set_random_number
  self.random_number = rand(10000..99999)
end

然后,每当您为该模型创建新记录时,set_random_number 回调就会在保存记录之前“触发”,并设置一个 10000 到 99999 之间的随机数。

关于ruby-on-rails - 当每个用户在 Rails 应用程序中注册时,为他们分配一个随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44250218/

相关文章:

ruby - 如何以编程方式确定哪个类/模块定义了被调用的方法?

ruby - 从 ruby​​ 上的匹配中获取字符串

ruby-on-rails - Ruby on Rails 从一种形式保存在两个表中

ruby-on-rails - 使用 Ruby 正则表达式解析时间

jquery - 使用 Rails 和 jQuery 处理内联编辑表单的好方法

ruby-on-rails - 使用自定义验证器时 RSpec 失败

ruby-on-rails - not_nil 有 Ruby 或 Ruby 主义吗?与零相反?方法?

ruby-on-rails - 向 ActiveRecord::Relation 添加新对象

ruby-on-rails - 编译 CSS 资源时出错

ruby - 在子类中调用父方法