什麼命令通過變更模型的版本,最徹底的方法?Rails的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'列)。合理? –