MongoMapper新记录包含旧记录的数据

时间:2011-08-29 22:00:42

标签: ruby-on-rails mongomapper

在我们的Rails应用程序环境(ruby 1.8.7 / rails 2.3.12)中,我可以运行以下代码:

class MongoTester
  include MongoMapper::Document
  key :test_arr, Array, :default => []
end

mt = MongoTester.new
mt.test_arr << 24

mt2 = MongoTester.new

mt2.inspect的输出是:

 #<MongoTester test_arr: [24], _id: BSON::ObjectId('4e5c089f3beaacad00000002')>

我不确定这是怎么回事。两个记录的object_id和_id是不同的。两个人都没有得救。我们没有在我们的应用程序中修改MongoMapper(mongomapper 0.8.6)。然而,一条全新的记录包含以前创建的不同记录的数据。

我无法在MongoMapper的测试套件中重现这一点。

关于这种效果如何可行或如何摆脱它的任何信息都会很棒。谢谢!

1 个答案:

答案 0 :(得分:2)

这是一个错误:在https://github.com/jnunemaker/mongomapper/issues/new处提交 此错误已在较新版本的MongoMapper中修复

这是一种解决方法:

key :test_arr, Array, :default => lambda { [] }

这是因为Ruby中的数组是可变的,所以每次使用<<添加默认数组对象。你的文档的object_id将是不同的,但数组的object_id将是相同的。