【发布时间】:2016-04-28 11:39:25
【问题描述】:
我的应用程序中有以下两个模型,Product 和 Price
Product 描述产品(name、description 等),Price 有 value、first_seen_at(日期时间)和 last_seen_at(日期时间)。
一个Product has_many Prices。
这个想法是当一个产品的价格发生变化时,最新的Price记录被更新:
- 如果新价格的
value与现有价格相同,则更新last_seen_at - 如果新价格的
value与现有价格不同,则会使用新的详细信息创建新的Price记录
我希望能够访问产品的最新价格,因此目前使用product.prices.last.value,其中product 是数据库中的任何给定产品
有没有更好的方法来实现这一点?要向数据库添加价格,我目前正在执行以下操作:
- 在数据库中查找产品
- 查找该产品的最新价格
- 检查价格差异
- 更新价格记录或创建新价格记录
我知道我可以将 latest_price 存储在 Product 记录中,但随后数据会被复制...
【问题讨论】:
-
If value is the same,和哪个一样? -
“找到价格时” - 这是某种价格比较应用程序吗?我认为你需要对它应该如何工作给出一种高级别的描述。
-
我进行了一些编辑以澄清 - 想法是产品的价格会发生变化。但我会通过请求将最新价格推送到应用程序。然后将处理此请求...值是否已更改?等
标签: ruby-on-rails activerecord rails-activerecord