在保存rails模型之前,如何获取它的id?
例如,如果我创建了一个新的模型实例,我如何在保存它之前获得它的ID?
我知道id是在保存时根据数据库创建的,但是有什么解决方法吗?
发布于 2010-08-12 23:32:31
通常,当人们认为他们需要这样做时,他们实际上并不需要这样做。就像John说的,解释你正在尝试做什么,别人可能会建议一种方法,而不需要事先知道id。
发布于 2014-03-27 18:21:32
我也在找这个,我找到了答案:
假设模型名为" model“,表名为"models”
model.rb
before_save {
next_id=Model.connection.select_value("Select nextval('models_id_seq')")
}这将输出您的记录在保存时将作为id的值。
发布于 2016-06-24 01:39:32
这与其说是一个Rails问题,不如说是一个数据库问题。这是一个在任何web应用程序框架中都会出现的问题,并且解决方案在所有地方都是相同的。您必须使用数据库事务。
基本流程是这样工作的。
从这种方法中,您将注意到的主要内容是,在回滚事务的in中将存在间隙。
https://stackoverflow.com/questions/3466908
复制相似问题