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

Ajax

开发平台:

Others

  1. class UpgradeSidebarObjects < ActiveRecord::Migration
  2.   class Sidebar < ActiveRecord::Base
  3.     include BareMigration
  4.   end
  5.   def self.up
  6.     modify_tables_and_update(:add_column, Sidebar, :type, :string) do |sb|
  7.       next if $schema_generator
  8.       if sb.controller.nil?
  9.         raise "Found a sidebar, "#{sb.id}", which doesn't know its controller so can't convert it. Settings are:n #{sb.settings}. Please either correct the controller or delete the sidebar."
  10.       end
  11.       sb.type = sb.controller.camelcase + 'Sidebar'
  12.       sb.save!
  13.     end
  14.     remove_column :sidebars, :controller
  15.   end
  16.   def self.down
  17.     modify_tables_and_update(:add_column, Sidebar, :controller, :string) do |sb|
  18.       next if $schema_generator
  19.       sb.controller = sb[:type].underscore.sub(/_sidebar$/, '')
  20.       sb.save!
  21.     end
  22.     remove_column :sidebars, :type
  23.   end
  24. end