aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations
Commit message (Collapse)AuthorAgeFilesLines
* Change all "can not"s to the correct "cannot".T.J. Schuck2014-01-031-1/+1
|
* Merge pull request #10134 from ↵Rafael Mendonça França2014-01-032-5/+5
|\ | | | | | | | | derikson/collection_proxy_select_with_multiple_args Change CollectionProxy#select to take the same arguments as ActiveRecord::select
| * Changed ActiveRecord::Associations::CollectionProxy#select to take multiple ↵Dan Erikson2013-04-082-5/+5
| | | | | | | | | | | | arguments. This makes the arguments the same as ActiveRecord::QueryMethods::select.
* | Merge pull request #13550 from vipulnsward/13437-fixRafael Mendonça França2014-01-011-1/+1
|\ \ | | | | | | | | | | | | | | | | | | Fix for #13437 Conflicts: activerecord/CHANGELOG.md
| * | https://github.com/rails/rails/commit/2075f39d726cef361170218fd16421fc52bed5 ↵Vipul A M2013-12-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a8 introduced a regression in includes/preloades by calling `read_attribute` on an association when preloading takes places, instead of using loaded records in `association.target`. tl;dr Records are not made properly available via `read_attribute` when preloding in simultaneous, but value of `@loaded` is already set true, and records concatenated in `association.target` on an association object. When `@loaded` is true we return an object of `AlreadyLoaded` in preload_for. In `AlreadyLoaded` to return preloaded records we make wrong use of `read_attribute`, instead of `target` records. The regression is fixed by making use of the loaded records in `association.target` when the preloading takes place. Fixes #13437
* | | Make outer joins on proper parentWashington Luiz2013-12-311-1/+1
|/ / | | | | | | | | Outer joins were being built on the root relation klass rather than the one specified in the join dependency root
* | On destroying do not touch destroyed belongs to association.Paul Nikitochkin2013-12-231-1/+1
| | | | | | | | Fixes: #13445
* | Merge pull request #13417 from TalkativeTree/comments_changeRichard Schneeman2013-12-191-1/+1
|\ \ | | | | | | fix CollectionAssociation's comments
| * | change CollectionAssociation's comments to say Association instead of ↵Ben Angel2013-12-191-1/+1
| | | | | | | | | | | | AssociationProxy to match changes for 3.1 removing Association proxy.
* | | Fix nil assignment to polymorphic belongs_toJeremy Kemper2013-12-181-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | Assigning nil to a polymorphic belongs_to would nullify its _id field by not its _type field. Fixes failing test from c141dfc838a5dca9f197814410fa5d44c143129c. Regression from 1678e959e973de32287b65c52ebc6cce87148951.
* | | extract cache counter logic to one methodAaron Patterson2013-12-121-11/+10
| | |
* | | remove duplicate codeAaron Patterson2013-12-121-15/+6
| | |
* | | extract a method for updating without a record objectAaron Patterson2013-12-121-6/+10
| | |
* | | extract methods out of the cache update methodAaron Patterson2013-12-121-14/+22
| | |
* | | pull a nil check up one frameAaron Patterson2013-12-121-6/+10
| | |
* | | remove more nil checksAaron Patterson2013-12-121-6/+5
| | |
* | | remove nil checkAaron Patterson2013-12-122-7/+11
| | | | | | | | | | | | | | | calling replace_keys could possibly do a nil check twice, this commit reduces it to once.
* | | remove the nil check from set_inverse_instanceAaron Patterson2013-12-124-4/+7
| | | | | | | | | | | | | | | methods that call set_inverse_instance with a record will not have to pay the cost of a nil check on every call
* | | make sure cached table name is a string. fixes #12582Aaron Patterson2013-12-121-1/+1
| | |
* | | Move the parameter normalization to the initialize methodRafael Mendonça França2013-12-111-4/+5
| | | | | | | | | | | | | | | activerecord-deprecated_finders expects the parameters denormalized in its initialize method
* | | Revert the whole refactoring in the association builder classes.Rafael Mendonça França2013-12-117-46/+62
| | | | | | | | | | | | This is to get activerecord-deprecated_finders work again
* | | Mark the arguments needed by activerecord-deprecated_finders with a TODORafael Mendonça França2013-12-112-0/+4
| | |
* | | Revert "Merge pull request #12518 from vipulnsward/remove_count_options"Rafael Mendonça França2013-12-112-3/+5
| | | | | | | | | | | | | | | | | | | | | It is needed for activerecord-depecated_finders This reverts commit dcff027a5242b20c0c90eb062dddb22ccf51aed9, reversing changes made to 3a2093984ff49d86db1efeff0c7581e788ecfb9f.
* | | Bring back the valid_options class accessorRafael Mendonça França2013-12-116-9/+14
| | | | | | | | | | | | It is need in activerecord-deprecated_finders
* | | fix typo, "state_state" should be "stale_state" [ci skip]Scott M2013-12-071-1/+1
| | |
* | | polymorphic belongs_to association with touch: true updates old record correctlySeverin Schoepke2013-12-051-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Example: Given you have a comments model with a polymorphic commentable association (e.g. books and songs) with the touch option set. Every time you update a comment its commentable should be touched. This was working when you changed attributes on the comment or when you moved the comment from one book to another. However, it was not working when moving a comment from a book to a song. This is now fixed.
* | | Raise `ArgumentError` when `has_one` is used with `counter_cache`Godfrey Chan2013-11-292-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the `has_one` macro incorrectly accepts the `counter_cache` option due to a bug, although that options was never supported nor functional on `has_one` and `has_one ... through` relationships. It now correctly raises an `ArgumentError` when passed that option. For reference, this bug was introduced in 52f8e4b9.
* | | tyopAkira Matsuda2013-11-261-1/+1
| | |
* | | Raise `RecordNotDestroyed` when children can't be replacedBrian Thomas Storti2013-11-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #12812 Raise `ActiveRecord::RecordNotDestroyed` when a child marked with `dependent: destroy` can't be destroyed. The following code: ```ruby class Post < ActiveRecord::Base has_many :comments, dependent: :destroy end class Comment < ActiveRecord::Base before_destroy do return false end end post = Post.create!(comments: [Comment.create!]) post.comments = [Comment.create!] ```` would result in a `post` with two `comments`. With this commit, the same code would raise a `RecordNotDestroyed` exception, keeping the `post` with the same `comment`.
* | | Merge remote-tracking branch 'docrails/master'Xavier Noria2013-11-243-15/+15
|\ \ \ | |/ / |/| | | | | | | | | | | Conflicts: activesupport/lib/active_support/core_ext/hash/deep_merge.rb activesupport/lib/active_support/core_ext/hash/keys.rb
| * | Change syntax format for example returned valuesPrem Sichanugrist2013-11-113-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | According to our guideline, we leave 1 space between `#` and `=>`, so we want `# =>` instead of `#=>`. Thanks to @fxn for the suggestion. [ci skip]
* | | Merge pull request #12918 from versioncontrol/rails-12866Rafael Mendonça França2013-11-161-1/+6
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Checks to see if the record contains the foreign_key to set the inverse automatically Conflicts: activerecord/CHANGELOG.md
| * | | Checks to see if the record contains the foreign_key to set the inverse ↵Edo Balvers2013-11-161-1/+6
| |/ / | | | | | | | | | automatically
* | | Prevent the counter cache from being decremented twicedm1try2013-11-111-1/+1
| | | | | | | | | | | | | | | when destroying a record on a has_many :through association. :destroy method has own counter_cache callbacks.
* | | Fixes problem with replacing has_one association record with itselfDenis Redozubov2013-11-111-2/+4
|/ /
* | Merge pull request #12390 from kennyj/rename_to_association_methodsRafael Mendonça França2013-11-052-2/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | Renamed generated_feature_methods to generated_association_methods. Conflicts: activerecord/lib/active_record/associations/builder/association.rb activerecord/lib/active_record/associations/builder/singular_association.rb activerecord/test/cases/base_test.rb
| * | Renamed generated_feature_methods to generated_association_methods.kennyj2013-09-282-2/+2
| | |
* | | Fix wrong behavior where associations with dependent: :destroy optionsRafael Mendonça França2013-11-011-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | was using nullify strategy This caused a regression in applications trying to upgrade. Also if the user set the dependent option as destroy he expects to get the records removed from the database.
* | | Skip `include_values` from through associations chains for building target scopePaul Nikitochkin2013-10-271-2/+6
| | | | | | | | | | | | Fixes: #12242, #9517, #10240
* | | Fix typo: `has_many :pets`, not `pets :has_many`.Peter Jaros2013-10-241-1/+1
| | |
* | | move helper class to the topAaron Patterson2013-10-211-42/+42
| | |
* | | build the association graph functionallyAaron Patterson2013-10-213-20/+13
| | | | | | | | | | | | This lets us avoid the constant calls to Array#<<
* | | @base_klass is not usedAaron Patterson2013-10-211-1/+0
| | |
* | | join_type isn't used on the node anymoreAaron Patterson2013-10-212-11/+7
| | |
* | | make joins generation method look similarAaron Patterson2013-10-211-6/+9
| | |
* | | remove node duping codeAaron Patterson2013-10-211-57/+19
| | |
* | | refactor outer join generationAaron Patterson2013-10-211-11/+6
| | |
* | | add outer joins for matching nodesAaron Patterson2013-10-211-2/+14
| | |
* | | construct joins by walking the outer join treeAaron Patterson2013-10-211-5/+34
| | |
* | | pass the outer joins to join_constraintsAaron Patterson2013-10-201-1/+2
| | |