2010-07-29 67 views
0

我有一個Rails模型,具有各種屬性和與其他模型的has_many關係。在視圖中,我希望用戶能夠輸入/更改值,這些值將更改加載對象中的值,並在它們進行更改時返回從它們計算出的結果。但是,我不想在數據庫中更改值直到選擇「保存」。我遇到的問題是,每次新更改後,與集合關聯的變量都會從數據庫中拉出來。所以,如果我使用類似以下內容:Rails:保留對內存中的對象/關聯的更改,而不保存到數據庫

@model.attributes = params[:model] 

它持續的模式,特別是通話時長,但下一次的用戶進行了更改集合重新加載,從失去所有之前的更改預留最近的一個。我用一個實例變量,例如:

@costs ||= self.costs 

嘗試,但每當我在其上運行的操作時,從數據庫中重新加載,覆蓋以前的更改。例如。

@costs[i].monthly = 10 

是否有任何方法可以確保更改在整個會話期間保留而不保存到數據庫?現在看起來像我最好的選擇可能是創建一個單獨的模型來存儲值,然後在用戶完成時將它們保存回原始。

回答

0

總之,數據不請求之間持續存在。當時我的印象是,這些屬性在會議期間持有價值。我從那裏得知,唯一持久的東西就是存儲在數據庫中的值以及在參數和會話哈希中來回傳遞的值。

相關問題