diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2017-02-28 17:54:03 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-28 17:54:03 -0500 |
commit | 4f384678b639b924b481ec4959f9b93b9d34061c (patch) | |
tree | e840cf1ec2724b9f3e552c112992609b7b039859 /activerecord/lib | |
parent | 6a7bd6e2e4a4f408781fdfbbfb9508b5a872e9f6 (diff) | |
parent | 310dc5dc443023ca4231eb0788e34ef6d157fa06 (diff) | |
download | rails-4f384678b639b924b481ec4959f9b93b9d34061c.tar.gz rails-4f384678b639b924b481ec4959f9b93b9d34061c.tar.bz2 rails-4f384678b639b924b481ec4959f9b93b9d34061c.zip |
Merge pull request #28217 from kamipo/create_join_table_respects_reference_key_type
`create_join_table` should respect `references` column type
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb | 12 |
1 files changed, 5 insertions, 7 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 c44215cd43..e683106527 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb @@ -334,18 +334,16 @@ module ActiveRecord # part_id int NOT NULL, # ) ENGINE=InnoDB DEFAULT CHARSET=utf8 # - def create_join_table(table_1, table_2, options = {}) + def create_join_table(table_1, table_2, column_options: {}, **options) join_table_name = find_join_table_name(table_1, table_2, options) - column_options = options.delete(:column_options) || {} - column_options.reverse_merge!(null: false) - type = column_options.delete(:type) || :integer + column_options.reverse_merge!(null: false, index: false) - t1_column, t2_column = [table_1, table_2].map { |t| t.to_s.singularize.foreign_key } + t1_ref, t2_ref = [table_1, table_2].map { |t| t.to_s.singularize } create_table(join_table_name, options.merge!(id: false)) do |td| - td.send type, t1_column, column_options - td.send type, t2_column, column_options + td.references t1_ref, column_options + td.references t2_ref, column_options yield td if block_given? end end |