aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/association_collection.rb
Commit message (Collapse)AuthorAgeFilesLines
* Split AssociationProxy into an Association class (and subclasses) which ↵Jon Leighton2011-02-181-533/+0
| | | | manages the association, and a CollectionProxy class which is *only* a proxy. Singular associations no longer have a proxy. See CHANGELOG for more.
* Add a transaction wrapper in add_to_target. This means that #build will now ↵Jon Leighton2011-02-141-27/+27
| | | | also use a transaction. IMO this is reasonable given that the before_add and after_add callbacks might do anything, and this great consistency allows us to abstract out the duplicate code from #build and #create.
* Inline ensure_owner_is_persisted! as it is only called from one placeJon Leighton2011-02-141-8/+4
|
* @target should always be an arrayJon Leighton2011-02-141-1/+2
|
* Rename add_record_to_target_with_callbacks to add_to_targetJon Leighton2011-02-141-4/+4
|
* Don't pass the block through build_recordJon Leighton2011-02-141-10/+8
|
* Move create and create! next to buildJon Leighton2011-02-141-21/+21
|
* Get rid of create_record as it is not only used in one placeJon Leighton2011-02-141-8/+7
|
* Get rid of AssociationCollection#save_recordJon Leighton2011-02-141-14/+7
|
* Add interpolation of association conditions back in, in the form of proc { ↵Jon Leighton2011-02-141-5/+3
| | | | ... } rather than instance_eval-ing strings
* Refactor the implementations of AssociatioCollection#delete and #destroy to ↵Jon Leighton2011-02-071-15/+11
| | | | be more consistent with each other, and to stop passing blocks around, thus making the execution easier to follow.
* This string should continueJon Leighton2011-02-071-1/+1
|
* Make record.association.destroy(*records) on habtm and hm:t only delete ↵Jon Leighton2011-02-071-1/+7
| | | | records in the join table. This is to make the destroy method more consistent across the different types of associations. For more details see the CHANGELOG entry.
* Make AssociationCollection#include? a bit more readableJon Leighton2011-01-301-4/+10
|
* Don't use method_missing when we don't have toJon Leighton2011-01-301-2/+2
|
* AssociationCollection#clear can basically just use #delete_all, except it ↵Jon Leighton2011-01-301-13/+7
| | | | should return self.
* AssociationCollection#to_ary should definitely dup the target! Also changed ↵Jon Leighton2011-01-301-3/+3
| | | | #replace which was previously incorrect, but the test passed due to the fact that to_a was not duping.
* Just use primary_key here, AR::Relation will resolve the ambiguity before it ↵Jon Leighton2011-01-301-1/+1
| | | | is converted to SQL
* Call sum on the scope directly, rather than relying on method_missing and ↵Jon Leighton2011-01-301-2/+2
| | | | calculate
* Condense first_or_last a bit moreJon Leighton2011-01-301-7/+5
|
* Get rid of separate reset_target! and reset_scopes_cache! methodsJon Leighton2011-01-301-26/+17
|
* target is always an arrayJon Leighton2011-01-301-5/+0
|
* load_target will return the target. it also will not load if loaded? is true.Jon Leighton2011-01-301-2/+1
|
* DRY up first/last and hence make last benefit from the bugfix in firstJon Leighton2011-01-301-15/+13
|
* Use scoped.find directly rather than having a find_by_sql methodJon Leighton2011-01-301-5/+1
|
* Use scoped.first and scoped.last instead of find(:first, ...) and ↵Jon Leighton2011-01-301-2/+2
| | | | find(:last, ...)
* Try to make fetch_first_or_last_using_find? more readableJon Leighton2011-01-301-2/+20
|
* load_target returns the targetJon Leighton2011-01-301-2/+1
|
* Rename AssociationProxy#loaded to loaded! as it mutates the associationJon Leighton2011-01-301-1/+1
|
* Abstract load_target conditional logicJon Leighton2011-01-301-1/+1
|
* Let's be less blasé about method visibility on association proxiesJon Leighton2011-01-301-37/+38
|
* We shouldn't be using scoped.scoping { ... } to build associated records, as ↵Jon Leighton2011-01-301-8/+5
| | | | this can affect validations/callbacks/etc inside the record itself [#6252 state:resolved]
* Nested attributes and in-memory changed values #first and #[] behaviour ↵Alexey Nayden2011-01-281-1/+1
| | | | consistency fix
* push !loaded? conditional upAaron Patterson2011-01-141-10/+8
|
* return early in case the left or right side lists are emptyAaron Patterson2011-01-141-5/+4
|
* only find_target can raise the exception, so isolate the rescue around that callAaron Patterson2011-01-141-5/+9
|
* we always have a target, so stop checkingAaron Patterson2011-01-141-1/+1
|
* we should use [] instead of Array.newAaron Patterson2011-01-141-1/+1
|
* @target is always a list, so stop doing is_a? checksAaron Patterson2011-01-141-1/+1
|
* move complex logic to it's own methodAaron Patterson2011-01-141-15/+19
|
* loaded? will not raise an AR::RecordNotFound exception, so move the rescue ↵Aaron Patterson2011-01-141-4/+4
| | | | inside the conditional
* include_in_memory? should check against @target list in case of new records. ↵Aaron Patterson2011-01-121-2/+2
| | | | [#6257 state:resolved]
* use array maths rather than *argsAaron Patterson2011-01-121-2/+4
|
* just use respond_to? and super rather than aliasing around methodsAaron Patterson2011-01-121-1/+1
|
* Raise ActiveRecord::RecordNotSaved if an AssociationCollection fails to be ↵Jon Leighton2011-01-111-1/+5
| | | | replaced
* Not really worth having the HasAssociation module for just a single methodJon Leighton2011-01-071-2/+0
|
* Construct an actual ActiveRecord::Relation object for the association scope, ↵Jon Leighton2011-01-071-17/+10
| | | | rather than a hash which is passed to apply_finder_options. This allows more flexibility in how the scope is created, for example because scope.where(a, b) and scope.where(a).where(b) mean different things.
* no need to send a symbol to send()Aaron Patterson2011-01-051-1/+1
|
* Create the association scope directly rather than going through with_scopeJon Leighton2011-01-031-1/+1
|
* Use the association directly in other places tooJon Leighton2011-01-031-5/+2
|