Techioz Blog

ActiveRecordで最近作成されたオブジェクトを返す最良の方法は?

概要

呼び出されたときにデータベースレコードを作成するオブジェクトを作成しており、この関数が新しく作成されたオブジェクトを返すようにしたいと考えています。これが私が得たものです:

data = {foo: 'foo', bar: 'bar'}

Dummy.new(data).save! # true
Dummy.last # newest record in the database

同じデータベース上に複数のセッションがある場合にこれが何を意味するのかが心配です。作成したばかりのレコードを確実に取得する方法はありますか?

解決策

作成したインスタンスを変数に代入するだけです。

data = { foo: 'foo', bar: 'bar' }

dummy = Dummy.new(data)
dummy.save!
dummy # the record you just created

または、作成を使用してください!新規作成の代わりに保存してください!このような:

data = { foo: 'foo', bar: 'bar' }

Dummy.create!(data) # returns the created instance or raises an error if not successful