Sha256: 2313afb4d3cf6415f0e8fc302d7f3ae57b11d13a9d58f22f3de62a8637b493ec
Contents?: true
Size: 860 Bytes
Versions: 45
Compression:
Stored size: 860 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
45 entries across 33 versions & 8 rubygems