1

どうすればこれを行うことができますか?それはお勧めですか?

「名前」と「価格」の列を持つ「アイテム」というテーブルがあります。

価格は常に変化するので、グラフ化できるようにすべての変化を保存したいと考えています。

「価格」は配列であるべきだと思っていましたか?これは正しいです?

ありがとう

4

1 に答える 1

2

別のテーブルを使用して、価格履歴を追跡します。このような単純なもの:

create_table :item_prices do |t|
    t.integer :item_id, :null => false
    t.decimal :price,   :null => false, :precision => 7, :scale => 2
    t.timestamps
end

pricedecimalではなく であることに注意してくださいfloat。お金のために浮動小数点を決して使用しないでください。

ではItem、次のようになります。

class Item
    has_many :item_prices
    before_save :update_price_history, :if => :price_changed?
private
    def update_price_history
        self.item_prices.create!(:price => self.price)
    end
end

これの優れた利点は、価格自体だけでなく、いつ価格が変更されたかを追跡できることです。これにより、グラフがもう少し賢明に見えるかもしれません。

于 2013-10-17T20:29:38.870 に答える