2011-06-12 3 views
1

Record과 같은 모델을 만들고 싶다면 개인 기록 (100m 대시의 기록 시간)을 말합니다. 이제 사람들이 새로운 개인 기록 (100m는 더 빠른 시간)을 설정하기를 원하면 어떻게 이것을 데이터베이스에 저장할 것인가?모델 인스턴스 버전 관리? 이전 기록을 추적하십시오

couchDB와 같은 버전 데이터베이스에 대해 생각하고 있었지만 과장된 것 같습니다. 또한 그러나 이것은 또한 (자체 모델을 refencing) 더러운 솔루션처럼 보인다

Record 
:id 
:name 
:record_id #=> this refers to the original Record 

처럼, 다른 ID로 기록을 참조 할 수 있습니다. 이제는 이것이 (모델 인스턴스를 다시 작성하지만 역사를 유지하는) 공통된 문제라고 확신하고 있으며 이것에 대한 좋은 해결책이 있는지 궁금해하고 있었습니까?

답변

2

당신은 papertrail과 같은 보석을보고 싶을 것입니다. 그러면 객체의 버전 관리를 설정할 수 있습니다. 보석을 사용하면 쉽게 사용할 수 있습니다. 사용 후에는 버전 배열을 반환합니다.

>> widget = Widget.find 42 
>> widget.versions    # [<Version>, <Version>, ...