如何在Rails

时间:2016-02-19 13:01:46

标签: ruby-on-rails activerecord

我正在开发一个用户可以创建条目的应用。每个条目都需要唯一的标识符。该标识符由2个值组成:

  1. 用户唯一标识符代码(例如:ZZ)
  2. 用户输入的条目数量
  3. 因此,如果有一个标识符为“ZZ”的用户,他的条目将由以下ID标识:“ZZ1”,“ZZ2”,“ZZ3”等。

    其他用户将拥有不同的标识符代码。并且他们的输入计数应该是独立的,即使它们都存储在同一个表中。

    我的第一次尝试是在users表中添加“user_code”字段,条目计数是模型中用于计算用户条目的范围。它完成了这项工作。但是当用户删除他们的条目时会出现问题。伯爵搞砸了。假设用户有5个条目,但删除了第4个条目。然后,当他创建一个新条目时,它应该被计为第6个条目。但由于删除了一个条目,因此计数器只计算4个条目,而不是5个条目。

    我正在寻找一种更好的方法来做到这一点。有什么想法吗?

    谢谢!

1 个答案:

答案 0 :(得分:0)

为什么不使用标准rails id column?它将满足您的所有要求,自行增加,当您删除条目时不会返回,并且您不必编写任何代码。

如果您希望标识符不是自增量整数,请读取this thread

编辑我误解了这个问题。

我建议将next_entry_id添加到用户模型,然后在before_create callback中检索它以设置条目对象中的值,最后在{{1}中递增它回调(如果db约束导致创建失败)。