aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/associations
Commit message (Collapse)AuthorAgeFilesLines
* Fix eager loading association with scope including joinsRyuta Kamizono2017-07-041-0/+1
| | | | Fixes #28324.
* Fix preloading association with scope including joinsRyuta Kamizono2017-07-041-0/+4
|
* Remove redundant `assert_respond_to`Ryuta Kamizono2017-07-031-26/+0
| | | | It is covered by following assertion.
* Revert "Merge pull request #29540 from kirs/rubocop-frozen-string"Matthew Draper2017-07-0221-21/+0
| | | | | This reverts commit 3420a14590c0e6915d8b6c242887f74adb4120f9, reversing changes made to afb66a5a598ce4ac74ad84b125a5abf046dcf5aa.
* Merge pull request #29540 from kirs/rubocop-frozen-stringMatthew Draper2017-07-0221-0/+21
|\ | | | | | | Enforce frozen string in Rubocop
| * Enforce frozen string in RubocopKir Shatrov2017-07-0121-0/+21
| |
* | Merge pull request #29631 from kamipo/should_be_clear_association_idsMatthew Draper2017-07-011-0/+5
|\ \ | | | | | | Should be clear `@association_ids` when joined newly associated record
| * | Should be clear `@association_ids` when joined newly associated recordRyuta Kamizono2017-06-301-0/+5
| |/ | | | | | | Fixes #29627.
* | Merge pull request #28808 from fschwahn/fix-polymorphic-automic-inverseMatthew Draper2017-07-012-6/+16
|\ \ | |/ |/| Fix automatic inverse for polymorphic interfaces
| * Add regression test for setting inverse instances on normal & polymorphic ↵Fabian Schwahn2017-04-201-0/+14
| | | | | | | | relationships when building objects on new records
| * Remove :polymorphic from INVALID_AUTOMATIC_INVERSE_OPTIONSFabian Schwahn2017-04-201-6/+2
| | | | | | | | | | | | | | This makes automatic inverse detection possible for polymorphic :has_one & :has_many possible. This resolves a number of issues, eg. `touch: true` on polymorphic relationships (#16446) and automatically setting inverse associations on newly built objects (#15028, #21843).
* | Remove unused `aliased_table_name` in `Association`Ryuta Kamizono2017-06-291-1/+0
| | | | | | | | | | | | | | `aliased_table_name` in `Association` was added at a3502c4. `aliased_table_name` in `JoinDependency` (added at 55854c4) is used, but it looks like that added one in `Association` is never used from the beginning.
* | Merge pull request #29601 from ↵Rafael Mendonça França2017-06-281-10/+17
|\ \ | | | | | | | | | | | | | | | kamipo/fix_eager_loading_to_respect_store_full_sti_class Fix eager loading to respect `store_full_sti_class` setting
| * | Fix eager loading to respect `store_full_sti_class` settingRyuta Kamizono2017-06-291-10/+17
| | |
* | | Merge pull request #29610 from ↵Rafael França2017-06-281-2/+1
|\ \ \ | | | | | | | | | | | | | | | | kamipo/dont_passing_klass_connection_to_association_scope Don't passing `klass.connection` to `AssociationScope`
| * | | Don't passing `klass.connection` to `AssociationScope`Ryuta Kamizono2017-06-291-2/+1
| | | | | | | | | | | | | | | | | | | | Passing `klass.connection` is redundant because `AssociationScope` is passed an association itself and an association has `klass`.
* | | | Merge pull request #29611 from kamipo/add_test_case_for_unscoping_default_scopeRafael França2017-06-281-2/+3
|\ \ \ \ | |_|/ / |/| | | Add a test case for unscoping `default_scope` in associations
| * | | Add a test case for unscoping `default_scope` in associationsRyuta Kamizono2017-06-291-2/+3
| |/ / | | | | | | | | | | | | | | | | | | | | | Unscoping `default_scope` in associations has already supported (#17360 for preloading, c9cf8b8 for eager loading). Fixes #20679. Closes #16531.
* | | Merge pull request #29602 from kamipo/use_reload_in_test_find_first_after_reloadRafael França2017-06-281-10/+10
|\ \ \ | |/ / |/| | Use `reload` in `test_find_first_after_reload`
| * | Use `reload` in `test_find_first_after_reload`Ryuta Kamizono2017-06-281-10/+10
| | | | | | | | | | | | | | | | | | | | | And use `assert_same` instead of `assert_equal` and tiny fix assert message s/#reload/#reset/. Follow up of #29511.
* | | ActiveRecord: do not create "has many through" records that have been removedTobias Kraze2017-06-281-0/+11
|/ / | | | | | | | | If a record was built on a HasManyThroughAssociation, then removed, and then the record was saved, the removed record would be created anyways.
* | Move clearing of @offsets cache to reset_scopeJohn Hawthorn2017-06-211-12/+21
| |
* | Clear offset cache on CollectionProxy reset/reloadJohn Hawthorn2017-06-201-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The `@offsets` cache is used by FinderMethods to cache records found by find_nth. This cache is cleared in AR::Relation#reset, but not in CollectionProxy#reset or CollectionProxy#reload. Because of this, since #29098, calling #first/#find_nth/etc after calling #reload or #reset on an association could return a stale record. This is an issue both when the full association target is loaded and when the item is loaded in #find_nth. This commit solves the problem by clearing the `@offsets` cache in CollectionProxy#reset and CollectionProxy#reload.
* | Raise on create for singular association when parent is unpersistedAlex Kitchens2017-06-081-0/+9
| | | | | | | | | | | | A collection association will raise on `#create_association` when the parent is unpersisted. A singular association should do the same. This addresses issue #29219.
* | Remove redundant `assert_nothing_raised` before another assertionsRyuta Kamizono2017-06-062-9/+0
| | | | | | | | These `assert_nothing_raised` are covered by following assertions.
* | Correct a has_many association testKoichi ITO2017-06-011-1/+1
| |
* | Remove a redundant test case of HABTM_associations_testKoichi ITO2017-05-311-13/+0
| |
* | Merge pull request #29098 from kamipo/fix_association_with_extension_issuesMatthew Draper2017-05-302-1/+15
|\ \ | | | | | | | | | Fix association with extension issues
| * | Fix association with extension issuesRyuta Kamizono2017-05-282-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | This fixes the following issues. * `association_scope` doesn't include `default_scope`. Should use `scope` instead. * We can't use `method_missing` for customizing existing method. * We can't use `relation_delegate_class` for sharing extensions. Should extend per association.
* | | Remove a redundant test assertionKoichi ITO2017-05-291-6/+0
|/ /
* | Merge pull request #29176 from bogdanvlviv/define-path-with__dir__Matthew Draper2017-05-261-1/+1
|\ \ | | | | | | Define path with __dir__
| * | Define path with __dir__bogdanvlviv2017-05-231-1/+1
| | | | | | | | | | | | | | | | | | ".. with __dir__ we can restore order in the Universe." - by @fxn Related to 5b8738c2df003a96f0e490c43559747618d10f5f
* | | Fix a RuboCop offences using `rubocop -a`Koichi ITO2017-05-241-1/+1
| | |
* | | Merge pull request #29141 from kamipo/make_helper_methods_to_privateMatthew Draper2017-05-241-18/+19
|\ \ \ | | | | | | | | Make helper methods in tests to private
| * | | Make helper methods in tests to privateRyuta Kamizono2017-05-191-18/+19
| |/ / | | | | | | | | | | | | `make_model` and `make_no_pk_hm_t` in `HasManyThroughAssociationsTest` are not a test case. it should be private.
* / / Remove a duplicate test of inverse_associations_test in ARKoichi ITO2017-05-211-14/+0
|/ /
* | Don't eager loading if unneeded for `FinderMethods#exists?`Ryuta Kamizono2017-05-111-0/+1
| | | | | | | | Fixes #29025.
* | Evaluate belongs_to :default option against the owner, not the associationGeorge Claghorn2017-04-271-0/+18
| |
* | Restore `fixtures :author_addresses`Ryuta Kamizono2017-04-278-10/+10
| | | | | | | | | | This change reverted in eac6f369 but it is needed for data integrity. See #25328.
* | Merge pull request #28885 from kamipo/remove_useless_test_caseRafael França2017-04-261-5/+0
|\ \ | | | | | | Remove useless test case
| * | Remove useless test caseRyuta Kamizono2017-04-261-5/+0
| | | | | | | | | | | | | | | Cannot call private methods in `@klass` against `CollectionProxy` (inherites `Relation`) because using `public_send` in `method_missing`.
* | | Revert "Merge pull request #27636 from ↵Rafael Mendonça França2017-04-268-10/+10
|/ / | | | | | | | | | | | | | | | | mtsmfm/disable-referential-integrity-without-superuser-privilege-take-2" This reverts commit c1faca6333abe4b938b98fedc8d1f47b88209ecf, reversing changes made to 8c658a0ecc7f2b5fc015d424baf9edf6f3eb2b0b. See https://github.com/rails/rails/pull/27636#issuecomment-297534129
* | `respond_to_missing?` should be privateRyuta Kamizono2017-04-221-1/+0
| | | | | | | | | | | | | | Follow up of 03d3f036. Some of `respond_to?` were replaced to `respond_to_missing?` in 03d3f036. But the visibility is still public. It should be private.
* | Don't attempt to create a new record that was already created.Isaac Betesh2017-04-201-0/+20
| | | | | | | | Fixes #24032
* | Prevent double firing the before save callback of new object when the parent ↵Ryuta Kamizono2017-04-211-2/+16
|/ | | | | | | | | | | | | | | | | | association saved in the callback Related #18155, #26661, 268a5bb, #27434, #27442, and #28599. Originally #18155 was introduced for preventing double insertion caused by the after save callback. But it was caused the before save issue (#26661). 268a5bb fixed #26661, but it was caused the performance regression (#27434). #27442 added new record to `target` before calling callbacks for fixing #27434. But it was caused double firing before save callback (#28599). We cannot add new object to `target` before saving the object. This is improving #18155 to only track callbacks after `save`. Fixes #28599.
* Load :author_addressesYasuo Honda2017-03-261-1/+1
|
* Use `SET CONSTRAINTS` for `disable_referential_integrity` without superuser ↵Fumiaki MATSUSHIMA2017-03-267-9/+9
| | | | | | | | | | | | | | | privileges (take 2) Re-create https://github.com/rails/rails/pull/21233 eeac6151a5 was reverted (127509c071b4) because it breaks tests. ---------------- ref: 72c1557254 - We must use `authors` fixture with `author_addresses` because of its foreign key constraint. - Tests require PostgreSQL >= 9.4.2 because it had a bug about `ALTER CONSTRAINTS` and fixed in 9.4.2.
* Merge pull request #28474 from kamipo/fix_extension_with_darty_targetKasper Timm Hansen2017-03-201-0/+5
|\ | | | | Fix extension method with dirty target in has_many associations
| * Fix extension method with dirty target in has_many associationsRyuta Kamizono2017-03-201-0/+5
| | | | | | | | | | | | | | Extension methods should not delegate to `scope` to respect dirty target on `CollectionProxy`. Fixes #28419.
* | Use `load` rather than `collect` for force loadingRyuta Kamizono2017-03-191-3/+3
|/ | | | | | | Since b644964b `ActiveRecord::Relation` includes `Enumerable` so delegating `collect`, `all?`, and `include?` are also unneeded. `collect` without block returns `Enumerable` without preloading by that. We should use `load` rather than `collect` for force loading.