创建用于在Ruby on Rails中购买和销售产品的实例或模型?

时间:2016-08-17 15:11:01

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

我正在讨论如何构建涉及买卖书籍的Rails应用程序。我想要完成的是每个购买书籍的用户,都会有一个页面,其中包含购买书籍的用户列表。此外,对于销售图书的每个用户,都会有一个页面,其中包含销售图书的用户列表。

我应该在每次用户购买/销售图书时创建图书模型并创建实例,还是应该创建购买模型并销售参考图书模型的模型?

我已经阅读了有关模块和mixins的内容,并认为这可能是一个不错的选择。任何建议将不胜感激。

3 个答案:

答案 0 :(得分:1)

您需要User,Book,Order和OrderLine或同等模型。

本书存储了您网站上的列表,当前价格和其他信息。订单将是用户的购物车和/或他每次购买的发票,这有许多订单行。那些指向购买的书,但在交易时存储价格。保持这个价格很重要,因为之后的图书价格可能会发生变化。

更复杂的设置有不同的订单和发票模型,但这取决于您。

答案 1 :(得分:0)

我要做的是创建一个User和一个Book模型,并构建一个用户有很多书籍的关系。例如:

min_delta

然后,您可以为书籍模型运行迁移以创建两列 is_sold或is_bought,每当出售或购买一本书时,都会在每个上面设置一个布尔值。

每当您需要创建某个用户购买的图书清单时,您可以根据图书所属的用户条件选择所有图书,并且is_sold / is_bought为true。

答案 2 :(得分:0)

如果您对数据的历史审计感兴趣 - 在捕获有关销售/购买交易本身的元数据时,那么我将使用用户表,书表和book_transaction表。您可以使用STI来区分两种类型的book_transactions(这将为您提供更多选项,例如book_return_type等)。

在STI案例中,mixins和scopes肯定会改进实现。

如果您不关心STI,您可以只使用一个模型,但在这种特殊情况下,拥有一对利用此表的模型可能会很有用。

你问的是好问题。当然,答案将与您需要处理的数据密不可分,而且我对此的见解有限。