Sha256: 287665a12736343644eeadd0493b5d1a0ed2f559fba1f74d0b14ed9ce1317036
Contents?: true
Size: 1.78 KB
Versions: 1
Compression:
Stored size: 1.78 KB
Contents
module ForeignKeyMigrations::ActiveRecord::ConnectionAdapters module TableDefinition def self.included(base) base.class_eval do alias_method_chain :column, :foreign_key_migrations alias_method_chain :primary_key, :foreign_key_migrations end end def primary_key_with_foreign_key_migrations(name, options = {}) column(name, :primary_key, options) end def indices @indices ||= [] end def column_with_foreign_key_migrations(name, type, options = {}) column_without_foreign_key_migrations(name, type, options) unless ForeignKeyMigrations.disable references = ActiveRecord::Base.references(self.name, name, options) if references ForeignKeyMigrations.set_default_update_and_delete_actions!(options) foreign_key(name, references.first, references.last, options) if index = fkm_index_options(options) # append [column_name, index_options] pair self.indices << [name, ForeignKeyMigrations.options_for_index(index)] end elsif options[:index] self.indices << [name, ForeignKeyMigrations.options_for_index(options[:index])] end end self end # Some people liked this; personally I've decided against using it but I'll keep it nonetheless def belongs_to(table, options = {}) options = options.merge(:references => table) options[:on_delete] = options.delete(:dependent) if options.has_key?(:dependent) column("#{table.to_s.singularize}_id".to_sym, :integer, options) end protected def fkm_index_options(options) options.fetch(:index, fkm_use_auto_index?) end def fkm_use_auto_index? ForeignKeyMigrations.auto_index && !ActiveRecord::Schema.defining? end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aspgems-foreign_key_migrations-2.0.0.beta2 | lib/foreign_key_migrations/active_record/connection_adapters/table_definition.rb |