Commit Graph

163 Commits

Author SHA1 Message Date
Jeremy Kemper
4cf8bf7312 Pushing a record on an association collection doesn't unnecessarily load all the associated records.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5769 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-12-21 23:28:12 +00:00
Tobias Lütke
906bd93f4f Remove side effects of [5684]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5705 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-12-08 21:41:15 +00:00
Tobias Lütke
cdad2d41e1 Consolidated different create and create! versions to call through to the 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
2006-12-06 00:13:31 +00:00
Jeremy Kemper
eb300f8428 AssociationCollection#any? takes a block [Michael Schoen]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5681 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-12-05 21:49:36 +00:00
Tobias Lütke
0ee0c1b2aa Add AssociationCollection#create! to be consistent with 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
2006-12-05 17:55:44 +00:00
David Heinemeier Hansson
22f095be23 Added counter optimization for AssociationCollection#any? so 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
2006-12-05 03:26:56 +00:00
Jeremy Kemper
02adc49d72 Simplify association proxy implementation by factoring construct_scope out of method_missing. Closes #6643.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5564 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-11-19 11:16:12 +00:00
Jeremy Kemper
63df6eb382 Don't inspect unloaded associations. Closes #2905.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5478 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-11-10 02:00:14 +00:00
Jamis Buck
e5684a2877 update deprecations to include alternative methods (where available)
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5359 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-10-24 17:25:30 +00:00
Rick Olson
c5536f9f00 Fix has_many :through to add the appropriate conditions when going through 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
2006-10-16 15:42:55 +00:00
Rick Olson
850087f0bd Add #delete support to has_many :through associations. Closes #6049 [Martin Landers]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5267 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-10-09 03:21:52 +00:00
Rick Olson
8e3bf70bcd Removes the ability for eager loaded conditions to be interpolated, since 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
2006-10-09 02:46:57 +00:00
Jeremy Kemper
0c3c131f3b The has_many create method works with polymorphic associations. Closes #6361.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5230 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-10-08 06:45:32 +00:00
Jeremy Kemper
a0bf0195a5 Deprecation: count class method should be called with an options hash rather 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
2006-09-26 17:02:45 +00:00
Jeremy Kemper
1caa76304b has_one associations with a nil target may be safely marshaled. Closes #6279.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5188 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-09-26 06:56:17 +00:00
Jeremy Kemper
3f1acf49bd Deprecation tests. Remove warnings for dynamic finders and for the foo_count ethod if it's also an attribute.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5116 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-09-15 07:02:05 +00:00
David Heinemeier Hansson
85fbb22f07 Backed out of new_record? to new? transformation as it would screw up 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
2006-09-05 18:54:24 +00:00
David Heinemeier Hansson
9d7e6432b2 Deprecated ActiveRecord::Base.new_record? in favor of 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
2006-09-05 18:48:10 +00:00
Michael Koziarski
b445ab986a Rename quote to quote_value so the name can be used in AR models. #3628 [Koz]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5007 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-09-04 23:41:13 +00:00
Jeremy Kemper
b1257d96b7 has_many :through conditions are sanitized by the associating class. Closes #5971.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4893 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-09-01 05:31:56 +00:00
Jeremy Kemper
70577d0dca Pushing a record onto a has_many :through sets the association's foreign key 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
2006-08-20 05:23:34 +00:00
Jeremy Kemper
e96c58224c unbraindeadify addition to has_many :through
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4791 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-08-19 14:56:58 +00:00
Jeremy Kemper
81b05fd909 Pushing a record onto a has_many :through sets the association's foreign key to the associate's primary key. Closes #5815.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4790 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-08-19 09:13:00 +00:00
Jeremy Kemper
0da426be96 Add records to has_many :through using <<, push, and concat by creating the 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
2006-08-18 07:35:07 +00:00
Tobias Lütke
ae74e8e9fe Fixed a bug which would cause .save to fail after trying to access a empty has_one association on a unsaved record.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4773 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-08-16 16:05:48 +00:00
Rick Olson
94a1309194 Cache nil results for has_one associations so multiple calls don't call the database. Closes #5757. [Michael A. Schoen]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4721 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-08-08 16:59:06 +00:00
Michael Koziarski
6ba4f4c524 Formally deprecate rich associations. [Koz]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4680 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-08-05 22:35:58 +00:00
Rick Olson
ab0277f220 Calculate sum with SQL, not Enumerable on HasManyThrough Associations. [Dan Peterson]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4640 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-07-31 21:06:19 +00:00
Rick Olson
971e03f24e Allow #count through a has_many association to accept :include. [Dan Peterson]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4618 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-07-24 04:55:16 +00:00
Rick Olson
291adbd361 fix association exception messages, fix them so the error messages actually display
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4615 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-07-20 00:34:09 +00:00
Nicholas Seckar
d9125093e8 Add AssociationCollection#sum since the method_missing invokation has been shadowed by Enumerable#sum. Closes #5500.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4493 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-06-25 17:49:24 +00:00
David Heinemeier Hansson
1671609063 Fixed that has_many.create ended up with duplicate objects (closes #5250) [daniel@nouvelles-solutions.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4416 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-06-03 21:16:50 +00:00
Rick Olson
c9eb5a083f delegate AssociationProxy#to_param to the association target so that associated models can be used in routes. [Rick]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4398 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-06-01 22:01:40 +00:00
Rick Olson
06075a9eb5 Fix the has_and_belongs_to_many #create doesn't populate the join for new records. Closes #3692 [josh@hasmanythrough.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4379 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-05-29 03:48:17 +00:00
Rick Olson
ea51d72edb Provide Association Extensions access to the instance that the association 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
2006-05-28 21:33:34 +00:00
David Heinemeier Hansson
b5a6ba6833 Minor style tweaks
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4355 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-05-21 19:20:14 +00:00
David Heinemeier Hansson
66586bc168 Fixed that has_many collections shouldn't load the entire association to do build or create [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4354 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-05-21 19:17:37 +00:00
Jeremy Kemper
d59f3a78a4 uniq preserves order. References [4325].
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4326 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-05-07 02:03:25 +00:00
Jeremy Kemper
50f538b72b Allow :uniq => true with has_many :through associations.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4325 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-05-06 23:37:56 +00:00
Rick Olson
c61b10b62b Raise error when trying to add to a has_many :through association. Use the Join Model instead. [Rick]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4265 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-04-25 05:49:14 +00:00
Rick Olson
df7b74668e Fix the HasManyAssociation#count method so it uses the new 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
2006-04-19 21:37:54 +00:00
Rick Olson
7e76740d2a Allow multiple association extensions with :extend option (closes #4666) [Josh Susser]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4206 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-04-11 01:10:42 +00:00
David Heinemeier Hansson
dcee137c7b Fix HasManyAssociation#find bugs when :finder_sql is set (closes #4600) [lagroue@free.fr]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4176 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-04-06 03:06:36 +00:00
Rick Olson
4d232025b7 Added descriptive error messages for invalid has_many :through associations: going through :has_one or :has_and_belongs_to_many [Rick]
Added support for going through a polymorphic has_many association: (closes #4401) [Rick]


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4169 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-04-05 15:36:02 +00:00
Florian Weber
bb4c6797bf Fixed that AssociationCollection#delete_all should work even if the records of the association are not loaded yet. [Florian Weber]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4144 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-04-03 22:37:56 +00:00
David Heinemeier Hansson
53aa8da1a7 Fixed that records returned from has_and_belongs_to_many associations with additional attributes should be marked as read only (fixes #4512) [DHH] DEPRECATED: Using additional attributes on has_and_belongs_to_many associations. Instead upgrade your association to be a real join model [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4123 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-04-01 20:03:10 +00:00
Marcel Molina
3f049b0b6b Do not implicitly mark recordss of has_many :through as readonly but do mark habtm records as readonly (eventually only on join tables without rich attributes).
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4107 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-30 22:27:32 +00:00
Rick Olson
56af14d5aa Changed has_and_belongs_to_many join to INNER JOIN for Mysql 3.23.x. Closes #4348 [Rick]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4038 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-26 04:08:50 +00:00
Rick Olson
6636eb16c5 Fixed issue that kept :select options from being scoped [Rick]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4036 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-26 00:36:55 +00:00
Rick Olson
38bae0a969 Change has_many :through to use the :source option to specify the source association. :class_name is now ignored. [Rick Olson]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4022 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-24 14:46:17 +00:00