チェンジセットによるモデルのバージョンを注文する最もクリーンな方法は何ですか?Rails Papertrailバージョン変更モデルによる注文モデル差分
私は整数を追跡しています(たとえば、週に失われた体重の量を考慮しています)、最終的に「今週最も失った」ユーザーを表示したいと思います。
私はあなたが一度も見たことのない最も醜い断片をハックすることができました。
私はこれについて賢明な方法がないとは思いません。何かご意見は?
@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
は、記録された重量変化であります一週間に一度?または、週に複数のレコードが存在することがありますか?今日と1週間前の違いは何ですか? – guiniveretoo
言い換えれば、体重変化を例として使用しているので、一定期間にわたって複数の変更をクエリして、今度からそれまでの間にdiffを見つけようとしているのですか、あるいはその期間にわたって1つの変更をクエリしていますか?人々はこの価値を1週間に1回以上入力できますか? – guiniveretoo
@guiniveretoo私のスニペットに基づいて明らかではないかもしれませんが、時間間隔は重要ではありません。例のために、週に1回の更新とみなしてください。しかし、すべてが同じであれば、私は単純に最新のバージョンとその前のバージョンのチェンジセットに基づいてソートしたいと思っています。 (私は明らかに 'object_changes'カラムを持っています)。理にかなっている? –