변경 세트를 사용하여 모델 버전을 가장 깨끗하게 정리하는 방법은 무엇입니까?레일 Papertrail 버전 주문 변경 모델 별 차이 Diff
정수를 추적 중이므로 (예 : 주당 손실 된 무게를 고려) 궁극적으로 "이번 주 가장 많이 잃어버린"사용자를 표시하고 싶습니다.
나는 당신이 함께 본 적이있는 가장 못된 발췌 문장을 해킹 할 수 있었고 아래에 그것을 포함시키고 있습니다.
나는 이것을 위해 영리한 방법이 없다고 생각하지 않습니다. 이견있는 사람?
@scoreboard ||= PaperTrail::Version.where(item_type: "WorkoutLog").map do |version|
if version.changeset['weight']
first = version.changeset['weight'][0]
last = version.changeset['weight'][1]
next if first.nil? || last.nil?
diff = last - first
{diff: diff, id: version.item_id}
end
end
이 기록 된 체중 변화 그리고 대부분의 손실에 대한 객체를 조회 할 많은 간단한 얻는다 일주일에 한 번? 또는 당신이 원하는 것은 오늘과 일주일 전의 차이점 일주일에 여러 레코드가있을 수 있습니까? – guiniveretoo
예를 들어 체중 변경을 사용했기 때문에 일정 기간 동안 여러 변경 사항을 쿼리하고 현재와 다음 사이에 차이점을 찾으려고 했습니까? 아니면 기간별로 하나의 변경 사항을 쿼리하고 있습니까? 사람들이 일주일에 한 번 이상이 값을 입력 할 수 있습니까? – guiniveretoo
@guiniveretoo 내 스 니펫을 기반으로 명확하지 않을 수도 있지만 시간 간격은 중요하지 않습니다. 예를 들어, 주간 업데이트로 간주하지만, 모든 것이 동일하면, 나는 단순히 최신 버전과 그 이전 버전으로 변경 세트를 기반으로 정렬하기를 원할뿐입니다. (분명히'object_changes' 컬럼을가집니다). 이해가 되니? –