我正在设计一个双边市场,业主可以将他们的资产以一个价格出租给租房者。
让我们以asset.rb
为例
daily_rate :decimal
hourly_rate :decimal
假设一个租房者想租一笔资产。他(她)将提出请求。租房者在提出要求时应支付他/她所看到的代价,这是合理的。我希望能够锁定价格信息,所以即使业主在预订期间改变价格。当提出请求时,我们可以获取该定价的快照。
我有几个想法:
1)将所有价格字段存储在请求模型中
在请求模型中存储所有价格的快照是最简单的方法。这就是我们现在使用的。
2)还没有尝试使用像这样的宝石
有一些库和宝石可以用来存储price
模型的历史变化。我读过关于乐观锁定版本控制模型的文章。但我不知道用这个来存储定价信息是否也是常见的做法。
发布于 2016-06-07 17:53:12
我可以通过拥有一个单独的资产模型来处理这个问题,而当租房者实际想租一些东西时,就会创建一个Order
。基本上,您的订单至少具有与您的资产(即daily_rate
和hourly_rate
)相同的两个属性,以及您可能称为status
的第三个属性。
当潜在的租房者选择他们想要的资产时,您的应用程序将从资产和状态(作为字符串或枚举)创建一个order
实例,其中包含当前的daily_rate和hourly_rate。然后,你应该向租房者展示一个确认页面,并询问他们是否还想继续租房。如果他们同意,您可以将status
设置为"confirmed"
。
这种结构将防止出租资产的用户在出租人下订单后无法改变价格。即使租赁资产的用户在租者的初始请求和确认之间更改了价格,租房者也可以选择在提交初始请求时以可用的价格完成订单。
https://stackoverflow.com/questions/37683826
复制相似问题