【发布时间】:2011-07-30 23:25:02
【问题描述】:
在 Rails 中,我正在寻找一种方法来生成自动递增的序列号,以便为模型的新实例保存内部记录。我想避免创建特定于数据库的代码,而是有一个无论数据库如何都可以工作的解决方案。我目前的想法是等到模型被保存,然后获取已保存模型的 ID 并将其用作序列号的后缀,但是我必须在创建时将每条记录保存两次。
有什么想法吗?
感谢收看!
【问题讨论】:
-
我不建议这样做的一个原因是,您最终可能会运行多个 Rails 应用程序并在所有应用程序和多个物理盒子中保持一个唯一的数字将非常困难。可能有一种方法可以通过数据库完成您想要的。您能否进一步说明序列号格式和限制?
-
感谢您的回复。序列号将是格式为 PLN-xxxxxx 的字符串。我正在考虑从“PLN-100000”开始并从那里递增。
-
那么所有记录的序列号前面都会有PLN-?
-
正确,只是区分不同型号的前缀。
-
为什么不直接使用 id 并在显示时在代码中添加 PLN- 前缀?为什么要避免使用数据库?
标签: ruby-on-rails auto-increment ruby-on-rails-3