0

如果我有一个模型并像这样保存它:

model = Website.new
model.attr = 1
model.id = 1
model.save #assume no errors in saving

然后像这样检索它:

model2 = Website.find(1)

model2 会一直被退回吗?忽略保存到数据库的错误。

是否存在数据尚未提交到数据库的可能情况,因此查找结果未找到记录?我是否需要延迟查找以保证返回该行?

4

1 回答 1

1

假设没有数据库错误,并且假设您没有覆盖saveon Website,那么您将拥有的唯一竞争条件是,如果您尝试find在数据库中创建记录之前的几毫秒内(通过或其他方式)访问对象。

所以,直接回答你的问题——是的,这是可能的——但是给定一个单一的数据库(例如,没有只读从属或类似的东西),这是非常非常不可能的。

于 2013-11-14T04:01:42.680 回答