与えられたタイムスタンプを見て、ウィジェット(バージョンではない)を返すAPIがあります。一定時間前にPaperTrail版からオブジェクトを取得する方法は?
widget.paper_trail.version_at(timestamp)
しかし、私の場合、私はそれが与えられたタイムスタンプより前を見てウィジェットを取得したいです。だから、私はこのシナリオを達成するためにversion_before
APIがあることを期待しています。しかし、私は解決策を見いださなかった。
たとえば、2016年12月に、体重50kgの男性(Aさん)と体重45kgの女性(Bさん)がいます。 1ヵ月後、2017年1月に女性の体重が50kgに増えました(女性の体重を更新して、ペーパートレイルで更新イベントのバージョンを記録すると考えてください)。男の体重は50kgです。
シナリオでは、2017年1月に50kgの体重が見たいと思っています。私は結果として2人を得ることが期待されます。
以下は、これまでPaperTrailで試したことです。
from_date = '2017-01-01'
to_date = '2017-01-31'
ids = []
PaperTrail::Version.where('DATE(created_at) BETWEEN ? AND ?', from_date, to_date).find_each do |version|
ids << version.item_id if v.changeset[:weight] && v.changeset[:weight][1] == 50
end
People.where(id: ids) #=> Ms. B
PaperTrailのみ変更/ CRUDを記録しているので、結果は予想通り、私はA氏を取得することはできません。
誰かが私のシナリオとして考え出した経験がありますか?任意のコメントや回答が参考になります。