【发布时间】:2013-08-06 22:21:03
【问题描述】:
我有一个带有 postgres 数据库的 rails 应用程序。我从一个跟踪票可以访问的事件的 Rails 模型票开始,但是可以一次购买多张票。所以现在我有了这个:
Ticket
belongs_to :purchase
Event
belongs_to :purchase
Purchase
has_many :tickets
has_many :events
我想在门票没有购买的地方使用迁移,创建购买并将其ticket_id设置为门票,将其event_id设置为门票的event_id,将门票的event_id设置为nil,然后从票。
关于如何解决这个问题的想法?
【问题讨论】:
-
这种类型的逻辑可以在您创建工单时进入您的控制器。
-
好的,有道理,但是我该如何处理现有的票?
-
您可以运行 rake(这几乎是一个脚本),它会更新您现有的票证以满足您所需的要求。当然,您必须编写此脚本。
-
啊,那我可能想把方形钉子装进圆孔里。
-
是的,如果您的表设置正确,您不再需要运行任何迁移。此时,主要是控制器逻辑(确保新票创建具有正确值的新购买)和运行 rake(修复从旧逻辑创建的旧票)。
标签: ruby-on-rails postgresql migration relationship