063_rejig_state_field.rb
上传用户:netsea168
上传日期:2022-07-22
资源大小:4652k
文件大小:1k
源码类别:

Ajax

开发平台:

Others

  1. class RejigStateField < ActiveRecord::Migration
  2.   class BareContent < ActiveRecord::Base
  3.     include BareMigration
  4.   end
  5.   
  6.   class BareFeedback < ActiveRecord::Base
  7.     include BareMigration
  8.     set_table_name 'feedback'
  9.   end
  10.   
  11.   def self.up
  12.     ActiveRecord::Base.record_timestamps = false
  13.     BareContent.transaction do
  14.       BareFeedback.transaction do
  15.         [BareContent, BareFeedback].each do |klass|
  16.           klass.find(:all).each do |value|
  17.             value[:state] = value.state.to_s.demodulize.underscore
  18.             value.save!
  19.           end
  20.         end
  21.       end
  22.     end    
  23.     change_column :contents, :state, :string
  24.     change_column :feedback, :state, :string
  25.     ActiveRecord::Base.record_timestamps = true
  26.   end
  27.   def self.down
  28.     BareContent.transaction do
  29.       BareFeedback.transaction do
  30.         [BareContent, BareFeedback].each do |klass|
  31.           klass.find(:all).each do |value|
  32.             value[:state] = "ContentState::" + value.state.to_s.classify
  33.             value.save!
  34.           end
  35.         end
  36.       end
  37.     end
  38.     change_column :contents, :state, :text
  39.     change_column :feedback, :state, :string
  40.   end
  41. end