2016-06-07 19 views
0

我正在設計一個雙面市場,其中業主可以出租他們的資產以便向租賃商支付價款。使用樂觀鎖定來獲取市場的快照定價信息

讓如果承租人想租一間資產採取asset.rb

daily_rate :decimal 
hourly_rate :decimal 

或CEO的例子。他/她將提交請求。承租人應該支付他/她提出請求時看到的價格是合理的。我希望能夠鎖定價格信息,即使店主在預訂時更改價格。當請求發出時,我們可以獲取該定價的快照。

我有幾個想法:

1)保存請求模型

它存儲所有在請求模型價格的快照最簡單的方法所有的價格領域。這是我們現在使用的。

2)沒試過]使用的寶石一樣papertrail

有,我可以用它來存儲price模式的歷史性轉變,圖書館和寶石。我讀了樂觀鎖定版本模型。但我不知道使用這種方式存儲定價信息是否也是常見做法。

回答

0

我會處理這個資產和Order當租客實際上想租用的東西時創建一個單獨的模型。基本上,您的訂單至少具有與您的資產相同的兩個屬性(即daily_ratehourly_rate)以及第三個屬性,您可以調用status

當潛在的承租人選擇他們想要的資產,你的應用程序將與資產當前daily_rate和hourly_rate和狀態"unconfirmed"(無論是作爲一個字符串或枚舉)創建order實例。然後,您應該向租房者出示一張帶有這些費率的確認頁面,並詢問他們是否仍想繼續租賃。如果他們說是,您可以將status設置爲"confirmed"

此結構將防止出租人資產的用戶在租戶下訂單後能夠更改價格。即使租用資產的用戶更改了承租人的初始請求和確認之間的價格,承租人也可以選擇在他們提出初始請求時以可用價格完成訂單。

+0

所以你建議選項1 –

+0

嗯,我絕對不會在請求對象本身存儲速率,因爲這會打開它篡改。我將創建一個存儲在數據庫中的屬性的實際模型。此外,您稍後可能會希望它生成收據,記錄保存等。 – apod