pierrotlefou
pierrotlefou

Reputation: 40751

get last insert id when using Activerecord

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

Answers (2)

stephenr
stephenr

Reputation: 1173

Assuming you've used the ActiveRecord default field name to hold the primary key, then

s.id
will hold the id of the record you've just saved.

Upvotes: 0

zed_0xff
zed_0xff

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

Related Questions