我有一个带有postgres db的rails应用程序。我开始使用rails模型Ticket来跟踪故障单可以访问的事件,但是可以同时购买多个故障单。所以现在我有了这个:
Ticket
belongs_to :purchase
Event
belongs_to :purchase
Purchase
has_many :tickets
has_many :events
我想在故障单没有购买的地方使用迁移,创建购买并将其ticket_id设置为故障单,将其event_id设置为故障单的event_id,将故障单的event_id设置为nil,然后从中删除event_id票。
关于如何处理这个问题的想法?
答案 0 :(得分:0)
以下是如何在Rails中生成rake任务:http://railsguides.net/2012/03/14/how-to-generate-rake-task/
更新历史记录的rake任务应如下所示:
# lib/tasks/something.rake
desc "Update old stuff"
task :my_task1 => :environment do
tickets = Ticket.where("purchase_id IS NULL")
tickets.each do |ticket|
ticket.purchase.create!([attributes])
...[more stuff]...
end
end
对命令运行rake任务,如:
$ bundle exec rake my_task1
我无法100%遵循您的应用程序的逻辑,但希望这会让您朝着正确的方向前进。