2011-05-11 3 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 

는 그러나, 나는이 경우 나의 키의 이름을 변경하고 싶지 않아요, 내 웹 서비스에 대한 올바른 이름입니다. 어떤 제안?

답변

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"]} 

에서 예를 들어, 당신은 아마 해당 필드에 대해 다른 이름을 선택해야 할 것입니다. 어쩌면 "조정"또는 "유사"또는 "차이"또는 "수정"일까요?

관련 문제