使用Activerecord时获取最后一个插入ID

时间:2010-05-28 07:15:16

标签: ruby sqlite activerecord

对于Sqilte3 C API,我会使用sqlite3_last_insert_rowid。插入新记录后如何使用ActiveRecord获取此ID?我使用以下方式插入新记录:

Section.new |s|
     s.a = 1
     s.b = 2
     #I expected the return value of save to be the last_insert_id, but it is NOT
     s.save   
end

2 个答案:

答案 0 :(得分:2)

'save'方法根据保存是否成功返回true或false 尝试smth像:

new_section = Section.new do |s|
    s.a = 1
    s.b = 2
    s.save   
end

p new_section 

它应该打印您手动设置的所有字段以及任何自动填充的值,包括last_insert_id通常是记录'id'

答案 1 :(得分:0)

假设您已使用ActiveRecord默认字段名称来保存主键,那么

s.id
将保存您刚刚保存的记录的ID。