MongoMapper - 使用新密钥更新现有记录

时间:2010-06-29 22:43:21

标签: ruby-on-rails ruby mongodb mongomapper

当通过MongoMapper向现有模型(使用现有数据)添加密钥时,我可以使用新密钥创建新文档,但在尝试使用相同密钥访问现有文档时,它无法声明它是“未定义的方法”。

我想知道是否有人有任何见解。

提前致谢!

(是的,这些例子被截断了。)

- model.rb -

key :key_1
key :key_2

- would return -
#<Model _id: BSON::ObjectID('4ba821abebddb9094c000001'), key_1: "test", key_2: "test">


- model.rb (updated version) -

key :key_1
key :key_2
key :key_3

- would still only return -
#<Model _id: BSON::ObjectID('4ba821abebddb9094c000001'), key_1: "test", key_2: "test">

- but if a new doc is created - 
#<Model _id: BSON::ObjectID('4ba821abebddb9094c000001'), key_1: "test", key_2: "test">
#<Model _id: BSON::ObjectID('7ba131abedaab9094c007482'), key_1: "test", key_2: "test", key_3: "test">

这个 会很好,除非我在尝试访问时收到一个方法未定义错误:第一个文档的key_3。

Rails 2.3.4

MongoMapper 0.7.4

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

使用set命令...

    @model.set(:key_3 => "VALUE...")
    @model.reload
    @model.key_3 # => "VALUE..."
    @model.save

此代码将为您的模型创建一个新字段,确认您已使用新密钥定义:

    key :key_3

享受,