2011-05-11 108 views
0

我在我的sinatra服务中使用了mongo mapper(0.8.6)。我有一个堆栈层次太深的问题。问题是我的模型中存在关键“changes”的冲突。这是我的型号:在MongoMapper中冲突关键名称

class ChangeLog 
    include MongoMapper::Document 

    belongs_to :resource 

    key :changes, Hash, :required => true 
    key :message, String, :required => true 
    key :note, String 
    key :user_uuid, String, :required => true 
    key :user_name, String, :required => true 
    timestamps! 
end 

但是,我不想重命名我的密钥,因为在这种情况下,它是我的Web服务的正确名称。有什么建议么?

回答

0

changes是一个实例方法,它会告诉您自上次保存文档后哪些字段发生了变化。下面是从MongoMapper's documentation

user = User.create(:name => 'John', :age => 29) 

puts user.changed?  # false 
puts user.changes.inspect # {} 

user.name = 'Steve' 
puts user.changed?   # true 
puts user.changes.inspect  # {"name"=>["John", "Steve"]} 

不幸的是一个例子,你可能会需要选择该字段一个不同的名称。也许“调整”或“变化”或“差异”或“修改”?