我有一個Rails模型,具有各種屬性和與其他模型的has_many關係。在視圖中,我希望用戶能夠輸入/更改值,這些值將更改加載對象中的值,並在它們進行更改時返回從它們計算出的結果。但是,我不想在數據庫中更改值直到選擇「保存」。我遇到的問題是,每次新更改後,與集合關聯的變量都會從數據庫中拉出來。所以,如果我使用類似以下內容:Rails:保留對內存中的對象/關聯的更改,而不保存到數據庫
@model.attributes = params[:model]
它持續的模式,特別是通話時長,但下一次的用戶進行了更改集合重新加載,從失去所有之前的更改預留最近的一個。我用一個實例變量,例如:
@costs ||= self.costs
嘗試,但每當我在其上運行的操作時,從數據庫中重新加載,覆蓋以前的更改。例如。
@costs[i].monthly = 10
是否有任何方法可以確保更改在整個會話期間保留而不保存到數據庫?現在看起來像我最好的選擇可能是創建一個單獨的模型來存儲值,然後在用戶完成時將它們保存回原始。