我正在开发一个用户可以创建条目的应用。每个条目都需要唯一的标识符。该标识符由2个值组成:
因此,如果有一个标识符为“ZZ”的用户,他的条目将由以下ID标识:“ZZ1”,“ZZ2”,“ZZ3”等。
其他用户将拥有不同的标识符代码。并且他们的输入计数应该是独立的,即使它们都存储在同一个表中。
我的第一次尝试是在users表中添加“user_code”字段,条目计数是模型中用于计算用户条目的范围。它完成了这项工作。但是当用户删除他们的条目时会出现问题。伯爵搞砸了。假设用户有5个条目,但删除了第4个条目。然后,当他创建一个新条目时,它应该被计为第6个条目。但由于删除了一个条目,因此计数器只计算4个条目,而不是5个条目。
我正在寻找一种更好的方法来做到这一点。有什么想法吗?
谢谢!
答案 0 :(得分:0)
为什么不使用标准rails id column?它将满足您的所有要求,自行增加,当您删除条目时不会返回,并且您不必编写任何代码。
如果您希望标识符不是自增量整数,请读取this thread。
编辑我误解了这个问题。
我建议将next_entry_id
添加到用户模型,然后在before_create
callback中检索它以设置条目对象中的值,最后在{{1}中递增它回调(如果db约束导致创建失败)。