2010-05-28 59 views
1

对于Sqilte3 C API,我将使用sqlite3_last_insert_rowid。插入新记录后如何在使用ActiveRecord时获取此ID?我用下面的方法来插入新记录:使用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

“保存”方法基于如果在保存成功返回true或false或不 尝试水木清华这样的:

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

p new_section 

应该打印所有领域您手动设置加上任何自动填充的值,包括last_insert_id通常是记录“ID”

0

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

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