Sha256: 81bd32f5b2b678e2edc13dfc7f82b2017863c4808d843a0e8321a185a4346bb5
Contents?: true
Size: 861 Bytes
Versions: 20
Compression:
Stored size: 861 Bytes
Contents
class PolymorphicPayments < ActiveRecord::Migration def self.up remove_column :payments, :type remove_column :payments, :creditcard_id rename_column :payments, :order_id, :payable_id change_table :payments do |t| t.string :payable_type t.string :payment_method t.references :source, :polymorphic => true end execute "UPDATE payments SET payable_type = 'Order'" Creditcard.all.each do |creditcard| if checkout = Checkout.find_by_id(creditcard.checkout_id) and checkout.order if payment = checkout.order.payments.first execute "UPDATE payments SET source_type = 'Creditcard', source_id = #{creditcard.id} WHERE id = #{payment.id}" end end end change_table :creditcards do |t| t.remove :checkout_id end end def self.down # no going back! end end
Version data entries
20 entries across 20 versions & 3 rubygems