Rails在创建多个记录时如何处理数据库错误?

时间:2014-02-28 04:04:34

标签: ruby-on-rails ruby

我知道我可以通过框架来获得这个答案,但我希望有人可以节省我的时间。

Model.create方法允许我创建一个新对象数组:

# Create an Array of new objects
User.create([{ :first_name => 'Jamie' }, { :first_name => 'Jeremy' }])

似乎在场景后面Rails只是一次一个地调用每个对象上的create。我只是想知道,如果由于数据库问题导致任何create调用失败,Rails会回滚前一次调用所做的所有更改,还是我必须自己处理的事情?

1 个答案:

答案 0 :(得分:0)

通常,默认情况下rails假设您有一个名为users的表格,该表格与User模型相关,

,最重要的是rails假设,它有一个名为id的自动增量主键,因此当它创建记录时,rails会插入所有期望id字段的内容。

因此,当您创建多条记录时,它只会为每条记录创建一个唯一键。

但是你可以覆盖这个默认值:)