aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2015-05-03 17:45:35 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2015-05-03 17:45:35 -0300
commit76feb8b8de4fe3e467ec3487023a18ea5990313d (patch)
treefc0c6989cdc48793d8cf9a19f7d015c13797608e
parentb4b29536e59f3e9e71155ed60148fe1f1e345283 (diff)
parent2ffeee3d2a211f7bb84c6b209c6d2c576ae6d586 (diff)
downloadrails-76feb8b8de4fe3e467ec3487023a18ea5990313d.tar.gz
rails-76feb8b8de4fe3e467ec3487023a18ea5990313d.tar.bz2
rails-76feb8b8de4fe3e467ec3487023a18ea5990313d.zip
Merge pull request #19972 from robertjlooby/document_habtm_changes_in_upgrade_guide
add upgrade note for breaking habtm change in 3.2 -> 4.0
-rw-r--r--guides/source/upgrading_ruby_on_rails.md14
1 files changed, 14 insertions, 0 deletions
diff --git a/guides/source/upgrading_ruby_on_rails.md b/guides/source/upgrading_ruby_on_rails.md
index 0aa2152d56..49834fa8a2 100644
--- a/guides/source/upgrading_ruby_on_rails.md
+++ b/guides/source/upgrading_ruby_on_rails.md
@@ -883,6 +883,20 @@ this gem such as `whitelist_attributes` or `mass_assignment_sanitizer` options.
* To re-enable the old finders, you can use the [activerecord-deprecated_finders gem](https://github.com/rails/activerecord-deprecated_finders).
+* Rails 4.0 has changed to default join table for `has_and_belongs_to_many` relations to strip the common prefix off the second table name. Any existing `has_and_belongs_to_many` relationship between models with a common prefix must be specified with the `join_table` option. For example:
+
+```ruby
+CatalogCategory < ActiveRecord::Base
+ has_and_belongs_to_many :catalog_products, join_table: 'catalog_categories_catalog_products'
+end
+
+CatalogProduct < ActiveRecord::Base
+ has_and_belongs_to_many :catalog_categories, join_table: 'catalog_categories_catalog_products'
+end
+```
+
+* Note that the the prefix takes scopes into account as well, so relations between `Catalog::Category` and `Catalog::Product` or `Catalog::Category` and `CatalogProduct` need to be updated similarly.
+
### Active Resource
Rails 4.0 extracted Active Resource to its own gem. If you still need the feature you can add the [Active Resource gem](https://github.com/rails/activeresource) in your Gemfile.