0

我有 Message 模型,它有大量的字段和表中大约 1000 万个条目。

现在我也有一个看起来像这样的 SomeItem 模型(它只有 1000 个条目):

class SomeItem < ActiveRecord::Base
  belongs_to :item, :polymorphic => true # "Message" is one of the item types
end 

现在有这两行连续的代码困扰我:

m = Message.new(:fild_one => 1, ...)
m.save
s = SomeItem.create(:item => m)

现在,如果看到m在数据库中保存得很好:Sat, 05 Oct 2013 15:01:06 UTC +00:00sSat, 05 Oct 2013 15:01:23 UTC +00:00很好。

但是当我这样做时: s.item_type it gives me "Message"这很好,但是s.id it gives me nil在 1000 个条目中有 3 个。

所以我的问题是:是否有一种延迟会阻止m上一行中s创建的用于下一行中创建的。

注意:1)消息表很大,包含数百万个条目

2) SomeItem 表很小,仅包含 1000 个条目

3)据我了解,rails 按顺序执行这两个句子,但这并不能解释这种行为。

之前有人注意到这一点,如果是的话,如果它是已知的事情,可以做些什么来防止这种情况发生?

提前致谢。我知道这个问题看起来很傻,但它是一个真实的场景,并且正在我的现场项目中发生。

4

0 回答 0