aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@plataformatec.com.br>2012-07-18 00:16:39 -0700
committerJosé Valim <jose.valim@plataformatec.com.br>2012-07-18 00:16:39 -0700
commit58ccc9f6c5d261f7c1305d822b16447ac3d286b3 (patch)
treef47e5097d83b04464904fa56d0f65bc91b521fc8 /activerecord/lib/active_record
parent17b6fa877752c217a9171b7f420bc86d55fddcbc (diff)
parent211d88b71b3df2ae161b23579a79f8e937132388 (diff)
downloadrails-58ccc9f6c5d261f7c1305d822b16447ac3d286b3.tar.gz
rails-58ccc9f6c5d261f7c1305d822b16447ac3d286b3.tar.bz2
rails-58ccc9f6c5d261f7c1305d822b16447ac3d286b3.zip
Merge pull request #7028 from lexmag/join_table_indexes
Add indexes to create_join_table method
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb7
-rw-r--r--activerecord/lib/active_record/migration/join_table.rb6
2 files changed, 7 insertions, 6 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 3c3f01223c..a246e6ace1 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -206,9 +206,12 @@ module ActiveRecord
column_options = options.delete(:column_options) || {}
column_options.reverse_merge!({:null => false})
+ t1_column, t2_column = [table_1, table_2].map{ |t| "#{t.to_s.singularize}_id" }
+
create_table(join_table_name, options.merge!(:id => false)) do |td|
- td.integer :"#{table_1.to_s.singularize}_id", column_options
- td.integer :"#{table_2.to_s.singularize}_id", column_options
+ td.integer t1_column, column_options
+ td.integer t2_column, column_options
+ yield td if block_given?
end
end
diff --git a/activerecord/lib/active_record/migration/join_table.rb b/activerecord/lib/active_record/migration/join_table.rb
index 01a580781b..e880ae97bb 100644
--- a/activerecord/lib/active_record/migration/join_table.rb
+++ b/activerecord/lib/active_record/migration/join_table.rb
@@ -4,13 +4,11 @@ module ActiveRecord
private
def find_join_table_name(table_1, table_2, options = {})
- options.delete(:table_name) { join_table_name(table_1, table_2) }
+ options.delete(:table_name) || join_table_name(table_1, table_2)
end
def join_table_name(table_1, table_2)
- tables_names = [table_1, table_2].map(&:to_s).sort
-
- tables_names.join("_").to_sym
+ [table_1, table_2].sort.join("_").to_sym
end
end
end