【问题标题】:How to show an auto-incremental ID on a "create new record" form with Rails如何使用 Rails 在“创建新记录”表单上显示自动增量 ID
【发布时间】:2010-10-09 01:37:02
【问题描述】:

我正在尝试创建一个表单,在点击表单上的提交之前,该表单将显示记录将要拥有的 id。例如,如果我有一个要创建新项目的表单,而之前的项目是 id 3,我希望新项目表单自动填充 4,这样我在提交表单之前就知道它会是 4。

感谢您提供的任何帮助!

--标记

【问题讨论】:

    标签: ruby-on-rails database forms ruby-on-rails-3


    【解决方案1】:

    不完全确定您为什么要这样做,但根据所使用的数据库技术,有不同的方法。但是,您不想使用这些方法,因为您的应用程序将不再与数据库无关。

    一种粗略而简单的方法是选择表中的最后一行并简单地将其递增为id

    例子:

    next_id = Project.last.id + 1
    

    然而我不赞同这个解决方案,尤其是因为有如果有多个用户同时登录并创建项目,则不保证在您单击保存时next_id 可用。

    我建议改为使用可用作辅助唯一标识符的不同列,可能类似于 GUID。不管它是什么,使用可以生成并且对该实例唯一的东西。

    【讨论】:

      【解决方案2】:

      如果您使用 auto_increment 而不首先在数据库中实际创建记录,您将无法真正做到这一点。因此,您可能需要使用不同的策略来为记录生成 id。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-13
        • 2023-03-15
        • 2013-07-27
        • 2023-04-03
        • 1970-01-01
        • 2012-03-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多