aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations
Commit message (Collapse)AuthorAgeFilesLines
* Improve Performance of calling create on has_many :through associations by ↵Michael Koziarski2007-04-261-7/+5
| | | | | | avoiding loading the target collection. Closes #8150 [evan] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6581 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Allow a polymorphic :source for has_many :through associations. Closes ↵Rick Olson2007-03-131-1/+11
| | | | | | #7143 [protocool] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6408 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Fix has_many :through << with custom foreign keys. Closes #6466, #7153.Jeremy Kemper2007-03-051-1/+1
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6336 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Aggregate reflection klass works with nested :class_nameJeremy Kemper2007-01-141-1/+1
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5923 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* dry up some duplicated codeJamis Buck2007-01-111-37/+21
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5883 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* treat create! like create and make sure the target is loaded firstJamis Buck2007-01-111-0/+1
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5882 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* fix regression in has_one#create, that caused instances thus created to be ↵Jamis Buck2007-01-111-0/+4
| | | | | | orphaned git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5881 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Pushing a record on an association collection doesn't unnecessarily load all ↵Jeremy Kemper2006-12-211-4/+3
| | | | | | the associated records. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5769 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Remove side effects of [5684]Tobias Lütke2006-12-082-4/+4
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5705 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Consolidated different create and create! versions to call through to the ↵Tobias Lütke2006-12-062-20/+42
| | | | | | base class with scope. This fixes inconsistencies, especially related to protected attribtues. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5684 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* AssociationCollection#any? takes a block [Michael Schoen]Jeremy Kemper2006-12-051-3/+7
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5681 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Add AssociationCollection#create! to be consistent with ↵Tobias Lütke2006-12-051-8/+15
| | | | | | AssociationCollection#create when dealing with a foreign key that is a protected attribute git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5677 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Added counter optimization for AssociationCollection#any? so ↵David Heinemeier Hansson2006-12-051-0/+4
| | | | | | person.friends.any? won't actually load the full association if we have the count in a cheaper form [DHH] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5676 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Simplify association proxy implementation by factoring construct_scope out ↵Jeremy Kemper2006-11-193-30/+23
| | | | | | of method_missing. Closes #6643. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5564 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Don't inspect unloaded associations. Closes #2905.Jeremy Kemper2006-11-101-0/+4
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5478 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* update deprecations to include alternative methods (where available)Jamis Buck2006-10-242-3/+3
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5359 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Fix has_many :through to add the appropriate conditions when going through ↵Rick Olson2006-10-161-2/+3
| | | | | | an association using STI. Closes #5783. [Jonathan Viney] (sorry, forgot to commit the actual files) git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5310 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Add #delete support to has_many :through associations. Closes #6049 [Martin ↵Rick Olson2006-10-091-0/+18
| | | | | | Landers] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5267 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Removes the ability for eager loaded conditions to be interpolated, since ↵Rick Olson2006-10-091-1/+1
| | | | | | there is no model instance to use as a context for interpolation. #5553 [turnip@turnipspatch.com] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5264 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* The has_many create method works with polymorphic associations. Closes #6361.Jeremy Kemper2006-10-081-4/+5
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5230 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Deprecation: count class method should be called with an options hash rather ↵Jeremy Kemper2006-09-261-1/+1
| | | | | | than two args for conditions and joins. Closes #6287. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5192 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* has_one associations with a nil target may be safely marshaled. Closes #6279.Jeremy Kemper2006-09-261-0/+2
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5188 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Deprecation tests. Remove warnings for dynamic finders and for the foo_count ↵Jeremy Kemper2006-09-151-0/+2
| | | | | | ethod if it's also an attribute. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5116 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Backed out of new_record? to new? transformation as it would screw up ↵David Heinemeier Hansson2006-09-058-26/+26
| | | | | | existing models that did boolean calls on "new" attributes [DHH] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5018 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Deprecated ActiveRecord::Base.new_record? in favor of ↵David Heinemeier Hansson2006-09-058-26/+26
| | | | | | ActiveRecord::Base.new? (old version still works until Rails 2.0) [DHH] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5017 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Rename quote to quote_value so the name can be used in AR models. #3628 [Koz]Michael Koziarski2006-09-044-5/+5
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5007 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* has_many :through conditions are sanitized by the associating class. Closes ↵Jeremy Kemper2006-09-012-3/+3
| | | | | | #5971. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4893 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Pushing a record onto a has_many :through sets the association's foreign key ↵Jeremy Kemper2006-08-201-1/+2
| | | | | | to the associate's primary key and adds it to the correct association. Closes #5829. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4792 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* unbraindeadify addition to has_many :throughJeremy Kemper2006-08-193-9/+17
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4791 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Pushing a record onto a has_many :through sets the association's foreign key ↵Jeremy Kemper2006-08-191-5/+13
| | | | | | to the associate's primary key. Closes #5815. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4790 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Add records to has_many :through using <<, push, and concat by creating the ↵Jeremy Kemper2006-08-181-29/+69
| | | | | | association record. Raise if base or associate are new records since both ids are required to create the association. #build raises since you can't associate an unsaved record. #create! takes an attributes hash and creates the associated record and its association in a transaction. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4786 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Fixed a bug which would cause .save to fail after trying to access a empty ↵Tobias Lütke2006-08-161-10/+9
| | | | | | has_one association on a unsaved record. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4773 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Cache nil results for has_one associations so multiple calls don't call the ↵Rick Olson2006-08-081-2/+2
| | | | | | database. Closes #5757. [Michael A. Schoen] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4721 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Formally deprecate rich associations. [Koz]Michael Koziarski2006-08-051-1/+4
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4680 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Calculate sum with SQL, not Enumerable on HasManyThrough Associations. [Dan ↵Rick Olson2006-07-311-1/+6
| | | | | | Peterson] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4640 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Allow #count through a has_many association to accept :include. [Dan Peterson]Rick Olson2006-07-241-0/+1
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4618 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* fix association exception messages, fix them so the error messages actually ↵Rick Olson2006-07-201-1/+1
| | | | | | display git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4615 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Add AssociationCollection#sum since the method_missing invokation has been ↵Nicholas Seckar2006-06-251-0/+5
| | | | | | shadowed by Enumerable#sum. Closes #5500. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4493 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Fixed that has_many.create ended up with duplicate objects (closes #5250) ↵David Heinemeier Hansson2006-06-031-1/+1
| | | | | | [daniel@nouvelles-solutions.com] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4416 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* delegate AssociationProxy#to_param to the association target so that ↵Rick Olson2006-06-011-1/+2
| | | | | | associated models can be used in routes. [Rick] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4398 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Fix the has_and_belongs_to_many #create doesn't populate the join for new ↵Rick Olson2006-05-291-0/+11
| | | | | | records. Closes #3692 [josh@hasmanythrough.com] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4379 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Provide Association Extensions access to the instance that the association ↵Rick Olson2006-05-281-1/+13
| | | | | | is being accessed from. Closes #4433 [josh@hasmanythrough.com] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4372 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Minor style tweaksDavid Heinemeier Hansson2006-05-212-8/+4
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4355 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Fixed that has_many collections shouldn't load the entire association to do ↵David Heinemeier Hansson2006-05-212-3/+35
| | | | | | build or create [DHH] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4354 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* uniq preserves order. References [4325].Jeremy Kemper2006-05-071-1/+8
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4326 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Allow :uniq => true with has_many :through associations.Jeremy Kemper2006-05-064-36/+32
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4325 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Raise error when trying to add to a has_many :through association. Use the ↵Rick Olson2006-04-251-1/+8
| | | | | | Join Model instead. [Rick] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4265 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Fix the HasManyAssociation#count method so it uses the new ↵Rick Olson2006-04-191-4/+7
| | | | | | ActiveRecord::Base#count syntax, while maintaining backwards compatibility. [Rick] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4237 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Allow multiple association extensions with :extend option (closes #4666) ↵Rick Olson2006-04-111-1/+1
| | | | | | [Josh Susser] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4206 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Fix HasManyAssociation#find bugs when :finder_sql is set (closes #4600) ↵David Heinemeier Hansson2006-04-061-1/+1
| | | | | | [lagroue@free.fr] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4176 5ecf4fe2-1ee6-0310-87b1-e25e094e27de