我有消息模型,其中包含大量字段和表中大约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:00
和s
Sat, 05 Oct 2013 15:01:23 UTC +00:00
处于正常状态。
但是当我这样做时:
s.item_type it gives me "Message"
这很好,但{3}中的s.id it gives me nil
1000个条目。
所以我的问题是:
是否存在一种延迟,阻止在上一行中创建的m
在下一行中创建的s
中使用。
注意: 1)消息表非常庞大,包含数百万个条目
2)SomeItem表很小,只包含1000个条目
3)据我所知,rails依次执行这两个句子,但这并不能解释这种行为。
之前有人注意到这一点,如果是的话,如果知道可以做些什么来防止这种情况呢?
提前致谢。我理解这个问题看起来很愚蠢,但它是一个真实的生活场景,正在我的现场项目中发生。