aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations
Commit message (Collapse)AuthorAgeFilesLines
* Move JoinDependency and friends from ↵Jon Leighton2011-02-288-620/+612
| | | | ActiveRecord::Associations::ClassMethods to just ActiveRecord::Associations
* Rewrote AssociationPreload.Jon Leighton2011-02-2811-0/+553
|
* Use proper objects to do the work to build the associations (adding methods, ↵Jon Leighton2011-02-2111-4/+501
| | | | callbacks etc) rather than calling a whole bunch of methods with rather long names.
* Rename target_klass to klassJon Leighton2011-02-213-10/+10
|
* Delegate through_reflection and source_reflection to reflectionJon Leighton2011-02-213-34/+34
|
* Delegate Association#options to the reflection, and replace ↵Jon Leighton2011-02-217-47/+49
| | | | 'reflection.options' with 'options'. Also add through_options and source_options methods for through associations.
* Singular associations no longer use a proxy, so no need to check for the ↵Jon Leighton2011-02-213-8/+2
| | | | proxy type on assignment.
* Associations - where possible, call attributes methods rather than directly ↵Jon Leighton2011-02-2111-179/+179
| | | | accessing the instance variables
* Initialize @target instead asking if it is defined.Emilio Tagua2011-02-181-1/+2
|
* Reindent and remove wrong line left in merge by mistake.Emilio Tagua2011-02-181-4/+3
|
* Merge remote branch 'rails/master' into identity_mapEmilio Tagua2011-02-1811-473/+527
|\ | | | | | | | | | | Conflicts: activerecord/lib/active_record/associations/association.rb activerecord/lib/active_record/fixtures.rb
| * Split AssociationProxy into an Association class (and subclasses) which ↵Jon Leighton2011-02-189-276/+287
| | | | | | | | manages the association, and a CollectionProxy class which is *only* a proxy. Singular associations no longer have a proxy. See CHANGELOG for more.
| * Add :nodoc: to ThroughAssociation and HasOneAssociationJon Leighton2011-02-182-2/+2
| |
| * Allow building and then later saving has_many :through records, such that ↵Jon Leighton2011-02-181-4/+46
| | | | | | | | the join record is automatically saved too. This requires the :inverse_of option to be set on the source association in the join model. See the CHANGELOG for details. [#4329 state:resolved]
* | Don't shadow outer local variable.Emilio Tagua2011-02-151-2/+2
| |
* | Merge remote branch 'rails/master' into identity_mapEmilio Tagua2011-02-1514-1044/+873
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: activerecord/examples/performance.rb activerecord/lib/active_record/association_preload.rb activerecord/lib/active_record/associations.rb activerecord/lib/active_record/associations/association_proxy.rb activerecord/lib/active_record/autosave_association.rb activerecord/lib/active_record/base.rb activerecord/lib/active_record/nested_attributes.rb activerecord/test/cases/relations_test.rb
| * 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-144-25/+25
| |
| * Add interpolation of association conditions back in, in the form of proc { ↵Jon Leighton2011-02-145-12/+19
| | | | | | | | ... } rather than instance_eval-ing strings
| * Remove Relation#& alias for Relation#mergeErnie Miller2011-02-122-2/+2
| |
| * Fix table name collision due to incorrect alias count on certain joins.Ernie Miller2011-02-121-4/+4
| | | | | | | | | | | | [#6423 state:committed] Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
| * just return the record from insert_record, use truthiness for comparisonsAaron Patterson2011-02-071-2/+2
| |
| * Refactor the implementations of AssociatioCollection#delete and #destroy to ↵Jon Leighton2011-02-074-18/+14
| | | | | | | | 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
| |
| * Correctly update counter caches on deletion for has_many :through [#2824 ↵Jon Leighton2011-02-072-20/+63
| | | | | | | | state:resolved]. Also fixed a bunch of other counter cache bugs in the process, as once I fixed this one others started appearing like nobody's business.
| * Support the :dependent option on has_many :through associations. For ↵Jon Leighton2011-02-072-16/+34
| | | | | | | | historical and practical reasons, :delete_all is the default deletion strategy employed by association.delete(*records), despite the fact that the default strategy is :nullify for regular has_many. Also, this only works at all if the source reflection is a belongs_to. For other situations, you should directly modify the through association.
| * Make record.association.destroy(*records) on habtm and hm:t only delete ↵Jon Leighton2011-02-074-23/+30
| | | | | | | | 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.
| * scope is always a RelationSantiago Pastorino2011-02-011-3/+1
| |
| * Propagate association extensions to scopes called on the association.Glenn Vanderburg2011-02-011-0/+3
| | | | | | | | Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
| * Make use of helpers in AssociationReflectionJon Leighton2011-01-301-4/+4
| |
| * Has many through - It is not necessary to manually merge in the conditions ↵Jon Leighton2011-01-301-4/+0
| | | | | | | | hash for the through record, because the creation is done directly on the through association, which will already handle setting the conditions.
| * @join_table_name is no longer usedJon Leighton2011-01-301-2/+1
| |
| * 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
| |