0

我有一个链接到数据库表的 Rails 应用程序,其中包含电子邮件地址和密码。我想创建一个唯一编号,用于识别系统中的每个用户。该号码将在注册时提供给用户,并存储在同一张表的 user_id 字段中。因此,例如,john@foo.bar 可以得到 0001 作为 ID,martha@foo.bar 可以得到 0002,依此类推。我的问题是:最好的方法是什么?我是否应该使用第一个 user_id (0001) 为数据库 (rake db:seed) 播种,并在控制器中编写一个方法来每次 +1 user_id?如果是这种情况,我如何访问最后一行以找出最后一个 user_id?

另一种方法是在表中找到最大的 user_id 并将其 +1。为此,我想我需要使用 tablename.find_by_user_id 或类似的东西(tablename.find_by_user_id.max 会起作用吗?)

第三种方法是将最新的 user_id 存储在某处,并让应用程序在需要时检索它。这些信息可以存储在哪里?

我对 rails 很陌生。非常感谢您对哪种方法最好的反馈。

谢谢, TimmyOnRails

4

1 回答 1

3

假设您的模型有两个属性名称和电子邮件。现在默认情况下,rails 将为您生成另外三列

1 id - 自动增量

2 created_at 和 updated_at - 时间戳

如果您想预填充数据库,Rake db:seed 是一种很好的解决方案。您只需要担心姓名和电子邮件。为这些属性添加适当的验证。Rest rails 将处理,即 id 由 rails 本身维护。你不必担心它。Created_at 和 updated_at 列也由 rails 维护。

如果您是 Rails 新手,那么我建议您查看http://railsforzombies.com,这会让您对活动记录有一个很好的了解

Railsguides 和 RailsCasts 也是 Rails 的另外两种学习材料。

于 2012-09-30T14:18:34.550 回答