【发布时间】:2010-10-09 01:37:02
【问题描述】:
我正在尝试创建一个表单,在点击表单上的提交之前,该表单将显示记录将要拥有的 id。例如,如果我有一个要创建新项目的表单,而之前的项目是 id 3,我希望新项目表单自动填充 4,这样我在提交表单之前就知道它会是 4。
感谢您提供的任何帮助!
--标记
【问题讨论】:
标签: ruby-on-rails database forms ruby-on-rails-3
我正在尝试创建一个表单,在点击表单上的提交之前,该表单将显示记录将要拥有的 id。例如,如果我有一个要创建新项目的表单,而之前的项目是 id 3,我希望新项目表单自动填充 4,这样我在提交表单之前就知道它会是 4。
感谢您提供的任何帮助!
--标记
【问题讨论】:
标签: ruby-on-rails database forms ruby-on-rails-3
不完全确定您为什么要这样做,但根据所使用的数据库技术,有不同的方法。但是,您不想使用这些方法,因为您的应用程序将不再与数据库无关。
一种粗略而简单的方法是选择表中的最后一行并简单地将其递增为id。
例子:
next_id = Project.last.id + 1
然而,我不赞同这个解决方案,尤其是因为有如果有多个用户同时登录并创建项目,则不保证在您单击保存时next_id 可用。
我建议改为使用可用作辅助唯一标识符的不同列,可能类似于 GUID。不管它是什么,使用可以生成并且对该实例唯一的东西。
【讨论】:
如果您使用 auto_increment 而不首先在数据库中实际创建记录,您将无法真正做到这一点。因此,您可能需要使用不同的策略来为记录生成 id。
【讨论】: