Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #9348 from schuetzm/doc_no_indices_with_create_joi…


Add more documentation for create_join_table.
  • Loading branch information...
commit b0fa9b59c8c9cac52d4eb4d8d984b85d4a753e97 2 parents 34c133a + 5b5f7a6
@fxn fxn authored
8 activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -192,6 +192,14 @@ def create_table(table_name, options = {})
# 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:
10 guides/source/
@@ -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
+`create_join_table` also accepts a block, which you can use to add indices
+(which are not created by default) or additional columns:
+create_join_table :products, :categories do |t|
+ t.index :products
+ t.index :categories
### Changing Tables
A close cousin of `create_table` is `change_table`, used for changing existing
Please sign in to comment.
Something went wrong with that request. Please try again.