【发布时间】:2015-11-10 22:00:38
【问题描述】:
我有一个模型Thing,其属性rating 会随着时间而改变。我希望能够查看任何Thing.rating 在给定日期的值。
例如,如果 @thing = Thing.first 和 @thing.rating 在 2015 年 1 月 13 日等于 5,我希望能够在未来的任何日期返回该值。
我的一个想法是创建一个名为ThingPast 的新模型,它将属于Thing,而Thing 将拥有_many_of ThingPast。 ThingPast 将具有属性 thing_id、rating 和 date_created。每天的某个时间,一个 Cron 作业会为每个 Thing 创建一个 ThingPast,并复制 rating 属性。
我认为这在技术上可行,但它似乎不必要地复杂和低效。有谁知道更好、更简单的方法来实现这一点?
【问题讨论】:
-
我认为您所描述的是最合乎逻辑的方法,我很想听听任何替代建议。我只有一条评论可能是将名称从
ThingPast更改为ThingRating。您正在记录现在和过去的值,并且您正在为Thing记录Ratings- 所以最好有一个明显的名称来准确反映这一点。我认为只要您索引thing_id,您就可以使用这种方法。
标签: ruby-on-rails ruby performance cron