在 ActiveRecord 中返回最近创建的对象的最佳方式?

问题描述 投票:0回答:1

我正在创建一个对象,调用该对象时将创建一个数据库记录,并且我希望此函数返回新创建的对象。这就是我得到的:

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

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

我担心当同一数据库上有多个会话时这意味着什么。有没有一种可靠的方法可以获取我刚刚创建的记录?

ruby-on-rails ruby activerecord rails-activerecord
1个回答
4
投票

只需将您创建的实例分配给变量即可:

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

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

或者使用

create!
代替
new
save!
,如下所示:

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

Dummy.create!(data) # returns the created instance or raises an error if not successful
© www.soinside.com 2019 - 2024. All rights reserved.