aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2013-02-21 04:04:12 -0800
committerXavier Noria <fxn@hashref.com>2013-02-21 04:04:12 -0800
commitb0fa9b59c8c9cac52d4eb4d8d984b85d4a753e97 (patch)
treea2a09dbf4a545dea0fc09eeece6a47618e7f33c6
parent34c133ac6108786fd8378db5b906cb2d846450fa (diff)
parent5b5f7a6b5c4b12a341043bfa348173f9732ef383 (diff)
downloadrails-b0fa9b59c8c9cac52d4eb4d8d984b85d4a753e97.tar.gz
rails-b0fa9b59c8c9cac52d4eb4d8d984b85d4a753e97.tar.bz2
rails-b0fa9b59c8c9cac52d4eb4d8d984b85d4a753e97.zip
Merge pull request #9348 from schuetzm/doc_no_indices_with_create_join_table
Add more documentation for create_join_table.
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb8
-rw-r--r--guides/source/migrations.md10
2 files changed, 18 insertions, 0 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 b737268f61..9bae880024 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -192,6 +192,14 @@ module ActiveRecord
# Set to true to drop the table before creating it.
# Defaults to false.
#
+ # Note that +create_join_table+ does not create any indices by default; you can use
+ # its block form to do so yourself:
+ #
+ # create_join_table :products, :categories do |t|
+ # t.index :products
+ # t.index :categories
+ # end
+ #
# ====== Add a backend specific option to the generated SQL (MySQL)
# create_join_table(:assemblies, :parts, options: 'ENGINE=InnoDB DEFAULT CHARSET=utf8')
# generates:
diff --git a/guides/source/migrations.md b/guides/source/migrations.md
index c4fbae8925..d738d847e9 100644
--- a/guides/source/migrations.md
+++ b/guides/source/migrations.md
@@ -344,6 +344,16 @@ create_join_table :products, :categories, column_options: {null: true}
will create the `product_id` and `category_id` with the `:null` option as
`true`.
+`create_join_table` also accepts a block, which you can use to add indices
+(which are not created by default) or additional columns:
+
+```ruby
+create_join_table :products, :categories do |t|
+ t.index :products
+ t.index :categories
+end
+```
+
### Changing Tables
A close cousin of `create_table` is `change_table`, used for changing existing