我有一个简单的问题:设想一个1:N事件的日历。在某些时候,我想知道两个时间戳之间的变化。
我试验了papertrail,但在我看来应该有一种更简单的方法来做到这一点。
简单吧? :)
更新:提取已创建和更新的记录:
Calendar.last.events.where("created_at >= :timestamp OR updated_at >= :timestamp", {timestamp: timestamp})
更新:通过papertrail获取已销毁的记录:
PaperTrail::EventVersions.where("created_at >= :timestamp", { timestamp: DateTime.now}).where(calendar_id: calendar.id, event: "destroy")
注意:您需要向(自定义)版本模型添加元数据引用。
更新 在阅读此post后,@ ck3g建议"软删除"。我决定重新考虑我的模特。含义:如果事件分配了一个用户,我必须"取消" (不删除)事件。如果它没有关联,我可以安全地破坏事件。
答案 0 :(得分:0)
我认为您应该执行某种软删除(存档)记录。您可以在网络上找到一堆实现。稍后您可以按deleted_at
找到记录。