这不是一个正常的用例,我可以使用诸如 paper_trail 或其他插件之类的东西,这是一种更复杂的方法来跟踪更改……但让我解释一下:
假设您有一份医疗日历,上面有预约、主治医生和客户。
假设您是比尔,您负责规划接下来几周的日程安排。在为下个月安排了所有数百个约会之后,您将时间表发送给您的医生和客户。
显然,如果您提前 4 周计划,您原来的日程安排就会发生变化(您因为生病、客户死亡而更换医生,您更改预约的开始时间等)
因此,您需要发送更新的日程安排。但很明显,您只想向那些受日程变化影响的客户或医生发送电子邮件。
你需要弄清楚的是:
- 新任命?
- 更改约会?
- 取消约会?
起初看起来相当简单,您可以只记住上次发送时间表的时间戳,然后使用 after_save、after_destroy 回调跟踪更改。
不幸的是,这也会导致一些棘手的情况,例如,您删除了一位医生,然后再次将同一位医生添加到该预约中。您会得到 2 个更改,这些更改显然不是“真正的”更改。
我喜欢的是单独的表格,我在其中存储这些更改,稍后查看它们并将它们发送给医生和客户。
我真的很好奇是否有人做了类似的事情,或者有一个很好的方法来解决这个问题。:)
谢谢 !