我有一个链接到数据库表的rails应用程序,它包含电子邮件地址和密码。我想创建一个唯一的编号,用于识别系统中的每个用户。该号码将在注册时提供给用户,并存储在同一个表的字段user_id中。 因此,例如,john @ foo.bar可以获得0001作为ID,martha @ foo.bar可以获得0002,依此类推。 我的问题是:最好的方法是什么? 我应该使用第一个user_id(0001)为数据库(rake db:seed)播种,并在控制器中编写一个方法来每次为user_id +1吗?如果是这种情况,我如何访问最后一行以找出最后一个user_id?
另一种方法是找到表中最大的user_id并为其+1。为此,我想我需要使用tablename.find_by_user_id或类似的东西(tablename.find_by_user_id.max会工作吗?)
第三种方法是将最新的user_id存储在某处,并让应用程序在需要时将其恢复。这些信息可以存储在哪里?
我对rails很新。非常感谢您提供有关哪种方式最佳方式的反馈。
谢谢, TimmyOnRails
答案 0 :(得分:3)
让我们假设您的模型有两个属性名称和电子邮件。现在默认情况下,rails会为您生成三列
1 id - 自动增量
2 created_at和updated_at - timestamps
Rake db:seed是您希望预填充数据库的最佳解决方案之一。您需要担心的是姓名和电子邮件。为这些属性添加适当的验证。休息轨道将处理,即id由轨道本身维护。你不必担心它。 Created_at和updated_at列也由rails维护。
如果您是rails的新手,那么我建议您查看http://railsforzombies.com,这样您就可以了解有效的记录
Railsguides和RailsCasts也是rails的另外两种学习材料。