return 最近在 ActiveRecord 中创建的对象的最佳方法?

Best way to return recently created object in ActiveRecord?

我正在创建一个对象,调用它时会创建一个数据库记录,我希望此函数 return 新创建的对象。这是我得到的:

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

或者像这样使用 create! 而不是 newsave!

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

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