Rails 5.2-如何通过购物车预订应用实施数量可用性检查?

时间:2018-12-21 03:36:16

标签: ruby-on-rails ruby validation ruby-on-rails-5

我正在构建一个高尔夫球车租赁应用程序,用户可以在其中预订高尔夫球车,而我需要帮助的是实施数量和可用性检查,在此情况下,预订高尔夫球车时,要在预订结束日期之前减去1,然后再减去数量当前为0,该购物车被视为不可用和不可预订。我正在使用Rails 5.2,

我有一个Devise User模型,其中添加了名字和姓氏。带有名称,描述,数量和价格列的购物车模型。以及带有开始日期,结束日期,user_id和cart_id列的预订模型。用户有has_many个预订,购物车has_many个预订,以及一个用户所属的预订。

我已经尝试了好几天,而这里没有任何答案考虑了我要寻找的数量方面。

1 个答案:

答案 0 :(得分:0)

这是一个很好的例子,可以通过计算值或将其存储在数据库中来解决。我认为您不希望在数据库结构中存储“数量”或“可用性”。

根据我的评论,您应该考虑将“ Carts”模型(我将其重命名为“ CartTypes”)存储在内存中。我能看到将其存储在数据库表中的唯一原因是,如果您需要经常更新特征-例如,如果购物车经常发生故障并且需要修复,则需要更改某个购物车的总可用购物车。给定的类型。

在任何一种情况下,您的CartType模型都将具有“ total_available”属性。我绝对不会存储“数量”属性。相反,您将要查看您的预订,确定cart_type,start_date和end_date,计算给定日期特定cart_type的预订,然后从total_available中减去该数字来确定可用性。

如何编写查询来执行此操作取决于您的架构和关系。如果您可以更具体,那么我可以提供具体查询。