Используя Mongoid (MongoDB mapper для Ruby on Rails), почему s.save возвращает true, но запись не обновляется? - PullRequest
1 голос
/ 01 сентября 2010

Если следующий код будет выполнен дважды, оба раза s.save вернет true, что означает успех, но во второй раз время не будет обновлено?

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

1 Ответ

0 голосов
/ 01 сентября 2010

Сначала посмотрите, сколько данных в базе данных Монго. Из вашего объяснения кажется, что вы запускаете один и тот же кусок кода дважды. Итак, вы запускаете один и тот же кусок кода дважды, фактически вставляя другую запись, потому что во втором запуске foo ссылается на новый экземпляр.

Если вы хотите попробовать обновить запись, попробуйте это:

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

В этом коде во второй раз foo ссылается на экземпляр, который был создан ранее.

...