Reputation: 40751
For Sqilte3 C API, I would use sqlite3_last_insert_rowid
. How to get this id when using ActiveRecord after insert a new record? I use following way to insert a new record :
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
Upvotes: 1
Views: 3652
Reputation: 1173
Assuming you've used the ActiveRecord default field name to hold the primary key, then
s.idwill hold the id of the record you've just saved.
Upvotes: 0
Reputation: 33227
'save' method returns true or false based on if saving was successful or not try smth like:
new_section = Section.new do |s|
s.a = 1
s.b = 2
s.save
end
p new_section
it should print all fields you set manually plus any automatically filled values, including last_insert_id being usually the record 'id'
Upvotes: 2