Rails 3-如何从mysql表中查找最后插入的ID

问题描述

|| 在我的控制器中,我有以下命令序列:
SAVE DATA INTO FIRST TABLE

_get ID of inserted item into table from first step_

SAVE DATA INTO SECOND TABLE WITH ID FROM FIRST COMMAND

if FIRST.save && SECOND.save
 do something
而且我想知道如何获取项目的ID,该ID会立即插入到数据库中。我试图进行谷歌搜索,但找不到此信息... 预先感谢您的提示     

解决方法

        
# SAVE DATA INTO FIRST TABLE
first_instance = FirstModel.new( :foo => :bar )
first_save = first_instance.save

# _get ID of inserted item into table from first step_
first_instance_id = first_instance.id

# SAVE DATA INTO SECOND TABLE WITH ID FROM FIRST COMMAND
second_save = SecondModel.new( :first_model_id => first_instance_id ).save

if first_save && second_save
  # do something
end
    ,        保存模型后,您可以访问它的
id
变量:
@user = User.new
puts @user.id
# => nil
@user.save
puts @user.id
# => 1
    ,        您能仅按模型中的
updated_at
字段搜索数据库吗? 要获取最新记录:
@model1 = Model1.order(\"updated_at DESC\").limit(1)
或更好的是,首先保存Model1:
@model1 = model1.save
分派:
@model2.model1_id = @model1.id
注意:如果您确实要保存特定记录的ID,则查找最后一条并不是最好的方法。 这是因为在插入Model1之后和调用Model2之前,其他用户可能会插入另一条记录。 如果您希望两者一起保存或根本不保存,则可以查看事务:http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html 如果您对Model1的保存感到满意,然后再担心Model2,那么只需像上面一样分配变量即可。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...