получить последний идентификатор вставки при использовании Activerecord - PullRequest
1 голос
/ 28 мая 2010

Для Sqilte3 C API я бы использовал sqlite3_last_insert_rowid.Как получить этот идентификатор при использовании ActiveRecord после вставки новой записи?Я использую следующий способ для вставки новой записи:

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 ]

2 голосов
/ 28 мая 2010

Метод 'save' возвращает 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 голосов
/ 28 мая 2010

Если вы использовали имя поля ActiveRecord по умолчанию для хранения первичного ключа, тогда

s.id
будет содержать идентификатор только что сохраненной записи.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...