aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/join_helper.rb
Commit message (Collapse)AuthorAgeFilesLines
* Improve the derivation of HABTM assocation join table namesAndrew White2012-06-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve the derivation of HABTM join table name to take account of nesting. It now takes the table names of the two models, sorts them lexically and then joins them, stripping any common prefix from the second table name. Some examples: Top level models (Category <=> Product) Old: categories_products New: categories_products Top level models with a global table_name_prefix (Category <=> Product) Old: site_categories_products New: site_categories_products Nested models in a module without a table_name_prefix method (Admin::Category <=> Admin::Product) Old: categories_products New: categories_products Nested models in a module with a table_name_prefix method (Admin::Category <=> Admin::Product) Old: categories_products New: admin_categories_products Nested models in a parent model (Catalog::Category <=> Catalog::Product) Old: categories_products New: catalog_categories_products Nested models in different parent models (Catalog::Category <=> Content::Page) Old: categories_pages New: catalog_categories_content_pages Also as part of this commit the validity checks for HABTM assocations have been moved to ActiveRecord::Reflection One side effect of this is to move when the exceptions are raised from the point of declaration to when the association is built. This is consistant with other association validity checks.
* Avoid sanitize_sql when we can use Relation#where insteadJon Leighton2012-01-161-10/+0
|
* a few minor performance improvements: fewer strings, fewer range objects, ↵Aaron Patterson2011-07-011-2/+1
| | | | fewer method calls
* cache the plural name on the reflection so we do not pay pluralize costs on ↵Aaron Patterson2011-06-301-1/+1
| | | | joins
* AliasTracker.pluralize use pluralize_table_names of modelGuillermo Iguaran2011-05-201-1/+1
|
* Fix tests under postgres - we should always put conditions in the WHERE part ↵Jon Leighton2011-03-121-5/+3
| | | | not in ON constraints because postgres requires that the table has been joined before the condition references it.
* Abstract some common code from AssociationScope and ↵Jon Leighton2011-03-111-0/+58
JoinDependency::JoinAssociation into a JoinHelper module