首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保存前获取Rails模型的ID ...?

保存前获取Rails模型的ID ...?
EN

Stack Overflow用户
提问于 2010-08-12 19:01:53
回答 10查看 23.7K关注 0票数 19

在保存rails模型之前,如何获取它的id?

例如,如果我创建了一个新的模型实例,我如何在保存它之前获得它的ID?

我知道id是在保存时根据数据库创建的,但是有什么解决方法吗?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-08-12 23:32:31

通常,当人们认为他们需要这样做时,他们实际上并不需要这样做。就像John说的,解释你正在尝试做什么,别人可能会建议一种方法,而不需要事先知道id。

票数 4
EN

Stack Overflow用户

发布于 2014-03-27 18:21:32

我也在找这个,我找到了答案:

假设模型名为" model“,表名为"models”

model.rb

代码语言:javascript
复制
before_save {
    next_id=Model.connection.select_value("Select nextval('models_id_seq')")
}

这将输出您的记录在保存时将作为id的值。

票数 8
EN

Stack Overflow用户

发布于 2016-06-24 01:39:32

这与其说是一个Rails问题,不如说是一个数据库问题。这是一个在任何web应用程序框架中都会出现的问题,并且解决方案在所有地方都是相同的。您必须使用数据库事务。

基本流程是这样工作的。

  • 打开transaction
  • Save您的模型
  • 使用数据库分配的ID
  • 如果您实际上不想将此模型保留在数据库中,请回滚transaction.
  • If如果您想要将模型保留在数据库中,请提交transaction.

从这种方法中,您将注意到的主要内容是,在回滚事务的in中将存在间隙。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3466908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档