1

次のコードを 2 回実行すると、両方の回s.saveが true を返し、成功を示しますが、2 回目は時間が更新されませんか?

foo = Foo.new
foo._id = 100
foo.time = Time.now
p foo.save
4

1 に答える 1

0

まず、mongo データベースにいくつのデータがあるかを調べます。あなたの説明から、同じコードを 2 回実行しているように見えます。したがって、同じコードを 2 回実行すると、実際には別のレコードが挿入されます。2 回目の実行では、foo が新しいインスタンスを参照しているためです。

レコードを更新したい場合は、これを試してください:

foo = Foo.new
foo._id = 100
foo.time = Time.now
puts foo.save
foo.time = Time.now
puts foo.save

2 回目のそのコードでは、foo は以前にインスタンス化されたインスタンスを参照しています。

于 2010-09-01T02:46:50.240 に答える