【发布时间】:2019-01-25 10:42:31
【问题描述】:
我正在尝试构建一个小型应用程序来使用 PayPal 出售门票。我们有两种类型的活动门票,标准门票和 VIP 门票。
我想要实现的是,当用户访问活动/演出页面时,点击购买门票按钮,然后他会被引导到一个支付页面,其中可以选择他想要购买的门票类型,然后结帐。
我对如何设置模型之间的关联感到困惑。
这是我目前所拥有的
class Event < ApplicationRecord
has_many :tickets
end
class Payment < ApplicationRecord
belongs_to :ticket
end
class User < ApplicationRecord
end
class Ticket < ApplicationRecord
enum type: [ :standard, :vip ]
belongs_to :event
end
在 Events、Tickets 和 TicketType 之间创建关系的最佳选项是什么,以及应该在其数据库中退出哪些引用
【问题讨论】:
-
我认为最好将工单类型存储为工单模型中的字段。您可以使用枚举器。只需创建一个整数字段 'type' 并在 Ticket 模型中使用
enum type: [:standard, :vip] -
我猜
Payment应该是belongs_to :ticket而不是:event,成为Ticket和User之间的连接表。Ticket应该是belongs_to :event。同意 Vasilisa 的意见,如果门票种类很少,但请考虑将来有更多的选择。 -
好的,那么用户与事件和门票之间的关系是什么。用户应该有很多票吗?我想在用户购票时将他们的票保存在数据库中?
标签: ruby-on-rails ruby-on-rails-5