diff options
author | Mehmet Emin İNAÇ <mehmetemininac@gmail.com> | 2015-06-25 13:52:40 +0300 |
---|---|---|
committer | Mehmet Emin İNAÇ <mehmetemininac@gmail.com> | 2015-06-25 14:49:08 +0300 |
commit | c26b9148e5b0681e7d00ec651bd568570e284d91 (patch) | |
tree | 23442ef5f16e2681d86d6703c6d7674b72709f2b /activerecord/lib/active_record | |
parent | 5b36015830fcd8233aac60af5cc9a9492ea12012 (diff) | |
download | rails-c26b9148e5b0681e7d00ec651bd568570e284d91.tar.gz rails-c26b9148e5b0681e7d00ec651bd568570e284d91.tar.bz2 rails-c26b9148e5b0681e7d00ec651bd568570e284d91.zip |
Add table name prefix and suffix support to add_foreign_key and remove_foreign_key methods
fix tests
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb | 5 | ||||
-rw-r--r-- | activerecord/lib/active_record/migration.rb | 3 |
2 files changed, 6 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb index 49ffd7ccf0..ca917a2eec 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb @@ -832,7 +832,10 @@ module ActiveRecord end def foreign_key_column_for(table_name) # :nodoc: - "#{table_name.to_s.singularize}_id" + prefix = Base.table_name_prefix + suffix = Base.table_name_suffix + name = table_name.to_s =~ /#{prefix}(.+)#{suffix}/ ? $1 : table_name.to_s + "#{name.singularize}_id" end def dump_schema_information #:nodoc: diff --git a/activerecord/lib/active_record/migration.rb b/activerecord/lib/active_record/migration.rb index d41b7e88d5..4cfda302ea 100644 --- a/activerecord/lib/active_record/migration.rb +++ b/activerecord/lib/active_record/migration.rb @@ -640,7 +640,8 @@ module ActiveRecord unless @connection.respond_to? :revert unless arguments.empty? || [:execute, :enable_extension, :disable_extension].include?(method) arguments[0] = proper_table_name(arguments.first, table_name_options) - if [:rename_table, :add_foreign_key].include?(method) + if [:rename_table, :add_foreign_key].include?(method) || + (method == :remove_foreign_key && !arguments.second.is_a?(Hash)) arguments[1] = proper_table_name(arguments.second, table_name_options) end end |