我有一個Rails 3.2應用程序,我有一個模型,我們稱之爲Car。返回一組具有不同瞬態屬性的非獨立記錄
用戶輸入一系列信息,並根據該信息返回建議汽車列表。現在,每輛車都有一組用戶可能或不想要的瞬態屬性,例如建議的室內裝潢,建議的顏色等。這些「建議」屬性是根據用戶輸入的信息即時計算的。因此,不僅應用程序能夠猜測用戶可能需要的汽車,還會猜測用戶可能需要的其他選項,並將這些信息暫時存儲在汽車記錄中。
這是汽車模型的相關部分的pseudocodish表示:
def self.suggested_cars
@cars = basic_cars(user_height, user_weight)
add_upholstery_suggestions(@cars, user_wealth)
add_color_suggestions(@cars, user_gender)
end
的問題是,這表明汽車和選項可以退回沒有明顯的實際租車記錄的算法。例如,對建議汽車的一個請求可以使車輛A和車輛A都返回真皮座椅。但是後來我遇到了一個問題,因爲當同時從活動記錄請求兩個同一個實體時,兩個實例都引用同一個對象,即它們不能具有不同的瞬態數據。
我懷疑我可能需要使用.dup方法在發生這種情況時複製對象,但我覺得有一個更優雅的解決方案。我願意接受任何建議。有沒有一種常見的方式來處理這種情況?
爲什麼你就不能瞬時數據附加到'Car'實例?然後當你顯示它時,你可以創建你需要的任何組合。即'Car'或'Car + transient data 1'或'Car + transient data 2'。然後,您不需要複製引用相同數據庫記錄的對象。 – Casper 2012-07-21 19:37:59