2017-03-01 70 views
0

我想知道是否有可能實現這樣的事情:Product.last(cost: 100)的Rails:記錄呼籲幾乎更新的屬性:通過表

在那裏將產品寄回,但幾乎更新的成本屬性(所以有對數據庫沒有改變)。我有三種模式,OrderLineItemProduct。 LineItem belongs_to訂單和訂單has_many LineItems。 LineItem是多態的。通過LineItems訂購has_many產品(但產品不屬於LineItem或訂單)。 Order.products < < Product.first按我的預期工作,訂單項分配了產品,訂單將正確保存。但是,訂單中的每個訂單項都具有默認情況下會繼承產品成本的成本屬性。我想修改LineItem上的成本屬性而不修改產品(即產品具有某種臨時折扣以調節價格)。我以最好的方式解決這個問題嗎?

回答

1

不知道我理解你的問題,但你可以做到這一點得到一個對象,並更改其屬性值的一個地方:

@product = 
     Product.last.tap do |product| 
     product.cost = 100 
     product.readonly! # to ensure you won't persist this change 
     end