2011-05-11 13 views
0

私はsinatraサービスでmongo mapper(0.8.6)を使用しています。スタックレベルが深すぎるという問題が1つあります。問題は、私のモデルにキー "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"]} 

からの例です、あなたはおそらく、そのフィールドに別の名前を選択する必要があるとしています。多分「調整」や「バリエーション」や「違い」や「変更」でしょうか?

関連する問題