跟踪医生,客户和约会的变化:)

时间:2012-12-16 11:49:57

标签: ruby-on-rails ruby

这不是一个正常的用例,我可以像使用paper_trail或其他插件一样使用它,这是一种更复杂的方法来跟踪更改...但是让我解释一下:

我们假设您有一个医疗日历,包括预约,主治医生和客户。

我们假设您是比尔,并且您负责规划接下来几周的日程安排。在完成下个月的所有数百次约会之后,您将计划发送给您的医生和客户。

显然,如果你计划提前4周,你的原定时间表会有变化(因为一个人病了,一个客户死了,你改变了预约的开始时间等等,你换了医生。)

因此,您需要发送更新的时间表。但显然,您只想向这些客户或医生发送电子邮件,以了解时间表中的这些变化会对您造成影响。

您需要弄清楚的是:

  • 新约会?
  • 更改约会?
  • 取消约会?

起初看起来相当简单,您可以记住最后一次发送计划的时间戳,然后使用after_save,after_destroy回调跟踪更改。

不幸的是,这也会导致一些棘手的情况,例如:你取消了医生,并再次将同一位医生加入该预约。你得到2个改变,显然没有“真正的”改变。

我喜欢的是单独的表格,我存储这些更改,稍后检查并将这些更改发送给医生和客户。

我真的很好奇,如果有人做了类似的事情,或者有一个很好的方法来解决这个问题。 :)

谢谢!

2 个答案:

答案 0 :(得分:1)

观察状态更改的最简单方法非常简单:使用日志文件。在你的情况下,它将是类固醇的一个日志文件,一个模型,具有如下属性:user_to_updatedate_changednotified_ok

每次进行更改并从日志模型中检索统计信息时,都可以触发新的日志插入。

答案 1 :(得分:1)

您可以尝试使用PaperTrail gem跟踪更改https://github.com/airblade/paper_trail