Rails模型,其属性在不同的日期具有不同的值

时间:2017-04-07 03:18:09

标签: ruby-on-rails

我有一个名为Table的模型,表中有一个名为price的属性。每当表的所有者想要时,价格可能每天都在变化。如何跟踪价格的所有价值,以便我可以在2017年1月1日或任何其他过去日期返回表格的价格。

2 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是将价格作为新模型,例如TableCalendarPrice,其中包含两个属性dateprice以及对Table模型的引用

答案 1 :(得分:0)

您可以保留价格随时间变化的历史记录

创建一个新模型PriceHistory

rails g model PriceHistory price:float table:references

并在表模型中创建关系

has_many :price_history

现在在Table模型中创建一个保存前选项

before_update :set_price_history

def set_price_history
   if price_changed?
      a = PriceHistory.new(table_id: :id,  price: :price)
      a.save
   end
end

它会自动创建created_at条目,可以与日期进行比较以获取之前日期的价格。

希望这会有所帮助..