aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/associations
Commit message (Collapse)AuthorAgeFilesLines
* Remove ActiveRelation#inspectBrian Cardarella2012-06-291-1/+1
|
* Improve the derivation of HABTM assocation join table namesAndrew White2012-06-221-3/+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.
* No need to cache table metadata in advance now that #6683 was merged.Rafael Mendonça França2012-06-112-16/+0
|
* Merge pull request #6492 from pmahoney/fair-connection-pool2Rafael Mendonça França2012-06-112-0/+7
|\ | | | | | | | | | | | | Fair connection pool2 Conflicts: activerecord/test/cases/associations/eager_test.rb
| * Make connection pool fair with respect to waiting threads.Patrick Mahoney2012-05-251-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The core of this fix is a threadsafe, fair Queue class. It is very similar to Queue in stdlib except that it supports waiting with a timeout. The issue this solves is that if several threads are contending for database connections, an unfair queue makes is possible that a thread will timeout even while other threads successfully acquire and release connections. A fair queue means the thread that has been waiting the longest will get the next available connection. This includes a few test fixes to avoid test ordering issues that cropped up during development of this patch.
| * Cache metadata in advance to avoid extra sql statements while testing.Yasuo Honda2012-05-251-0/+7
| | | | | | | | | | Reason: If metadata is not cached extra sql statements will be executed, which causes failures tests with assert_queries().
* | Fix fragile #assert_queries implementation and usages.Steve Jorgensen2012-06-092-4/+5
| | | | | | | | | | | | | | | | | | Several tests that passed when run in the order they are loaded by rake test were failing when run in different sequences due to problems with the implementation of assert_queries and assert_no_queries as well as incorrect assumptions made about how many queries might be executed by a database adapter in various cases.
* | Add tests to delete by fixnum or string id with has many through associationsFrancesco Rodriguez2012-05-281-0/+20
| |
* | Fix failing build related to change in CollectionAssociation#deleteCarlos Antonio da Silva2012-05-291-1/+1
| | | | | | | | Merge commit 6f1d9d00ffd9d411b2bd488da4eb92b7e2fd972e
* | Add support for CollectionAssociation#delete by Fixnum or StringFrancesco Rodriguez2012-05-281-3/+17
|/ | | | | | | | | | | | | | | | | | | | | | | | I found the next issue between CollectionAssociation `delete` and `destroy`. class Person < ActiveRecord::Base has_many :pets end person.pets.destroy(1) # => OK, returns the destroyed object person.pets.destroy("2") # => OK, returns the destroyed object person.pets.delete(1) # => ActiveRecord::AssociationTypeMismatch person.pets.delete("2") # => ActiveRecord::AssociationTypeMismatch Adding support for deleting with a fixnum or string like `destroy` method.
* Ensure that CollectionAssociation#replace returns proper targetPiotr Sarnacki2012-05-191-2/+2
| | | | | | | | The fix commited in e2a070c was returning the `new_target`, as a try to return whatever user replaced association with. The problem is, the resulting association target may be ordered differently. In such case we want to return the target that will be later used for that association.
* fix #delete_all with habtm with :delete_sqlJon Leighton2012-05-181-0/+6
|
* Perf: Don't load the association for #delete_all.Jon Leighton2012-05-181-0/+12
| | | | Bug #6289
* quarantine deprecated testsJon Leighton2012-05-184-151/+9
|
* Merge pull request #5453 from ↵Aaron Patterson2012-05-161-0/+6
|\ | | | | | | | | JonRowe/patch_uniq_has_and_belongs_to_many_when_already_loaded When Active Record has already loaded a unique association `.size` returns the wrong number.
| * when using a preloaded array and the uniq flag is set then return the size ↵Jon Rowe2012-03-151-0/+6
| | | | | | | | of the uniq array
* | Fix CollectionAssociation#replace to return new target (closes #6231)Piotr Sarnacki2012-05-161-0/+12
| |
* | Remove #=== quirkJon Leighton2012-05-112-11/+0
| | | | | | | | Makes it consistent with Relation. Can't see a use for this.
* | CollectionProxy < RelationJon Leighton2012-05-114-7/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This helps bring the interfaces of CollectionProxy and Relation closer together, and reduces the delegation backflips we need to perform. For example, first_or_create is defined thus: class ActiveRecord::Relation def first_or_create(...) first || create(...) end end If CollectionProxy < Relation, then post.comments.first_or_create will hit the association's #create method which will actually add the new record to the association, just as post.comments.create would. With the previous delegation, post.comments.first_or_create expands to post.comments.scoped.first_or_create, where post.comments.scoped has no knowledge of the association.
* | Fix issue with private kernel methods and collection associations. Closes #2508Carlos Antonio da Silva2012-05-021-0/+5
| | | | | | | | | | | | | | | | Change CollectionProxy#method_missing to use scoped.public_send, to avoid a problem described in issue #2508 when trying to use class methods with names like "open", that clash with private kernel methods. Also changed the dynamic matcher instantiator to send straight to scoped, to avoid another roundtrip to method_missing.
* | Remove unused assignments from activerecord testsMark Rushakoff2012-04-291-1/+0
| |
* | remove deprecated callsJon Leighton2012-04-276-64/+64
| |
* | more deprecations manually fixedJon Leighton2012-04-272-38/+38
| |
* | find and replace deprecated keysJon Leighton2012-04-2711-150/+150
| |
* | %s/find(:\(first\|last\|all\), \([^()]*\))/scoped(\2).\1/gcI amongst other ↵Jon Leighton2012-04-2711-209/+209
| | | | | | | | things
* | don't need this testJon Leighton2012-04-261-5/+0
| |
* | remove calls to find(:first), find(:last) and find(:all)Jon Leighton2012-04-268-52/+47
| |
* | remove deprecate #all usageJon Leighton2012-04-261-1/+1
| |
* | remove deprecated #first callsJon Leighton2012-04-261-12/+1
| |
* | remove deprecate #calculate callsJon Leighton2012-04-266-23/+8
| |
* | remove deprecated #find_in_batches callsJon Leighton2012-04-261-1/+1
| |
* | fix #scoped deprecationsJon Leighton2012-04-262-5/+5
| |
* | remove tests for #with_scope (it's now deprecated)Jon Leighton2012-04-252-41/+0
| |
* | Merge remote-tracking branch 'kennyj/fix_5563'Jon Leighton2012-04-251-0/+11
|\ \ | | | | | | | | | | | | Conflicts: activerecord/test/cases/associations/belongs_to_associations_test.rb
| * | Fix #5563. Should reflect the most recent change to either of association / id.kennyj2012-04-131-0/+11
| | |
* | | add missing testJon Leighton2012-04-251-0/+12
| | |
* | | fix testsJon Leighton2012-04-133-67/+66
|/ /
* | Merge pull request #5720 from kennyj/should_use_klass_methodJon Leighton2012-04-111-0/+1
|\ \ | | | | | | Get a properly aliased_table_name, when we use a polymorphic association.
| * | Get a properly aliased_table_name, when we use a polymorphic association.kennyj2012-04-041-0/+1
| | |
* | | Adds test to check that circular preloading does not modify Model.unscoped ↵Benedikt Deicke2012-04-031-0/+6
|/ / | | | | | | (as described in #5667)
* / Fix #5667. Preloading should ignore scoping.Jon Leighton2012-03-301-0/+11
|/
* Remove IdentityMapCarlos Antonio da Silva2012-03-133-148/+10
|
* In AR depths use &:to_i before :uniq to process mixed arrays likes ["1", 1] ↵Alexey Vakhov2012-03-091-0/+7
| | | | correct
* Merge pull request #5289 from rafaelfranca/fix-through-associationsJon Leighton2012-03-081-4/+20
|\ | | | | Fix has_many through associations when mass_assignment_sanitizer is strict
| * Not need to pass join attributes to association buildRafael Mendonça França2012-03-071-3/+2
| |
| * Add test case to has_many through association when mass_assignment_sanitizer isRafael Mendonça França2012-03-051-4/+21
| | | | | | | | :strict
* | Add tests to test that through associations are not readonly, and we can ↵kuahyeow2012-03-081-0/+11
|/ | | | update the records we retrive from the association
* Fix #5069 - Protect foreign key from mass assignment throught association ↵Jean Boussier2012-03-052-0/+38
| | | | builder
* Merge pull request #4543 from jdelStrother/find_or_initJon Leighton2012-02-011-0/+12
|\ | | | | Don't instantiate two objects in collection proxy / find_or_instantiate_by
| * Don't instantiate two objects in collection proxy / find_or_instantiator_byJonathan del Strother2012-01-191-0/+12
| |