Commit Graph

4107 Commits

Author SHA1 Message Date
Santiago Pastorino
bf22b287a4 Do not use primary key on insertion when it's nil 2010-12-29 01:22:43 -02:00
Santiago Pastorino
eb2ebe7680 Simplify inspect implementation
After 304d38c053 we don't need the
new_record? check anymore.
2010-12-28 15:45:35 -02:00
Santiago Pastorino
304d38c053 Allow primary_key to be an attribute when the model is a new record 2010-12-28 10:11:27 -02:00
Aaron Patterson
897b56bb2f I N C E P T I O N: flatten_deeper works around a bug in Ruby 1.8.2. 2010-12-27 12:47:30 -07:00
José Valim
6b099975fa No need to symbolize these. 2010-12-27 09:30:36 +01:00
Aaron Patterson
9bac649fa4 try not to make so many funcalls 2010-12-26 20:22:13 -07:00
Aaron Patterson
67da590979 make our hash of klasses and ids actually have classes for keys 2010-12-26 20:15:09 -07:00
Jon Leighton
9f5c18ce07 Refactor we_can_set_the_inverse_on_this? to use a less bizarre name amongst other things 2010-12-26 16:27:12 -07:00
Jon Leighton
b0498372a1 Add a HasAssociation module for common code for has_* associations 2010-12-26 19:38:04 +00:00
Jon Leighton
0c272471fe Remove AssociationProxy#dependent? - it's badly named and only used in one place 2010-12-26 19:38:04 +00:00
Jon Leighton
e8ada11aac Associations: DRY up the code which is generating conditions, and make it all use arel rather than SQL strings 2010-12-26 19:38:04 +00:00
Jon Leighton
7021b6b851 Remove custom_select param from construct_select, as it isn't used 2010-12-26 19:38:04 +00:00
Jon Leighton
d7a659334c Remove construct_from from ThroughAssociationScope - it's not called from anywhere 2010-12-26 19:38:04 +00:00
Jon Leighton
93861d19e3 Set the create scope to an empty hash in ThroughAssociationScope. For reasoning please see the inline code comments. 2010-12-26 18:46:58 +00:00
Jon Leighton
ac67eee4e6 Use conditionals and implicit returns rather than explicit returns and postfix ifs (it's easier to read) 2010-12-26 18:46:58 +00:00
Jon Leighton
739ea1fbfe Remove has_cached_counter? and cached_counter_attribute_name from HasManyThroughAssociation, as the exact same methods are inherited from HasManyAssociation 2010-12-26 18:46:58 +00:00
Jon Leighton
99db97a322 Remove pointless use of 'private' 2010-12-26 18:46:58 +00:00
Jon Leighton
3eef0977e1 Use the through association proxy for operations on the through record, so that those operations are automatically scoped and therefore construct_join_attributes does not need to use construct_owner_attributes. 2010-12-26 18:46:58 +00:00
Jon Leighton
b5c30f9dac Remove target_obsolete? which is not called from anywhere 2010-12-26 18:46:58 +00:00
Jon Leighton
c6e0433ca3 scoped.where_values_hash is never nil 2010-12-26 18:46:58 +00:00
Aaron Patterson
d767252d72 refactor to use group_by 2010-12-25 16:47:59 -07:00
Aaron Patterson
bde643fbec arel will deal with casting the ids, so we can delete this 2010-12-25 16:42:49 -07:00
Aaron Patterson
75ac9c4271 use arel to determine selection column 2010-12-25 16:38:59 -07:00
Aaron Patterson
33b5a2637f refactoring method selection 2010-12-25 16:36:07 -07:00
Aaron Patterson
5b918bb97c using arel to compile sql statements 2010-12-25 16:19:59 -07:00
Aaron Patterson
0a609eea50 use sql literal factory method 2010-12-25 15:25:11 -07:00
Aaron Patterson
a6fe244e9b take more advantage of arel sql compiler 2010-12-25 15:23:45 -07:00
Aaron Patterson
3fe9951fcc refactoring AST building 2010-12-25 14:34:13 -07:00
Aaron Patterson
f855090a78 use arel to compile SQL statements 2010-12-25 14:31:22 -07:00
Aaron Patterson
ec13305b21 stop redifining methods on every call to set_primary_key 2010-12-24 22:15:41 -07:00
Aaron Patterson
23b03baba6 use the sql literal factory method 2010-12-24 16:01:07 -07:00
Aaron Patterson
0fbf829b1e stop the recursive insanity 2010-12-24 15:59:02 -07:00
Aaron Patterson
34d79fad85 setting the primary key on the update manager 2010-12-24 15:59:02 -07:00
Jon Leighton
fb3a8c51b4 Raise an error for associations which try to go :through a polymorphic association [#6212 state:resolved] 2010-12-23 15:19:18 -08:00
Jon Leighton
1c07b84df9 If a has_many goes :through a belongs_to, and the foreign key of the belongs_to changes, then the has_many should be considered stale. 2010-12-23 15:19:18 -08:00
Jon Leighton
2d9626fc74 Improved strategy for updating a belongs_to association when the foreign key changes. Rather than resetting each affected association when the foreign key changes, we should lazily check for 'staleness' (where fk does not match target id) when the association is accessed. 2010-12-23 15:19:18 -08:00
Jon Leighton
1619c2435b Revert "Optimize <association>_ids for hm:t with belongs_to source". The optimisation has too many edge cases, such as when the reflection, source reflection, or through reflection has conditions, orders, etc. [#6153 state:resolved]
This reverts commit 373b053dc8.

Conflicts:

	activerecord/lib/active_record/associations.rb
2010-12-23 15:19:18 -08:00
Jon Leighton
ff7bde62c8 When a has_many association is not :uniq, appending the same record multiple times should append it to the @target multiple times [#5964 state:resolved] 2010-12-23 15:19:17 -08:00
Michał Łomnicki
030480ac1f Fix behaviour of foo.has_many_through_association.select('custom select') [#6089 state:resolved] 2010-12-23 15:19:17 -08:00
Szymon Nowak
85683f2a79 Fix creation of has_many through records with custom primary_key option on belongs_to [#2990 state:resolved] 2010-12-23 15:19:17 -08:00
Jon Leighton
c6db37e69b Don't allow a has_one association to go :through a collection association [#2976 state:resolved] 2010-12-23 15:19:17 -08:00
Aaron Patterson
df3cfa6aae avoid duping and new objects 2010-12-23 07:33:28 -08:00
Raimonds Simanovskis
2b795050de fixed retrieval of primary key value in Ralation#insert method
previously primary key value was always assigned nil which caused Oracle enhanced adapter failing tests
2010-12-23 23:22:00 +08:00
Aaron Patterson
c7f81f14df arel can escape the id, so avoid using the database connection 2010-12-22 19:20:08 -08:00
Aaron Patterson
83ffb82fb9 Arel::Table#[] always returns an attribute, so no need for || 2010-12-22 19:17:44 -08:00
Aaron Patterson
35f5938c91 probably should use the some_ids variable here. o_O 2010-12-22 18:30:18 -08:00
Aaron Patterson
3e64336647 removing SQL interpolation, please use scoping and attribute conditionals as a replacement 2010-12-22 18:23:38 -08:00
Aaron Patterson
6ca921a98c use arel to compile SQL rather than build strings 2010-12-22 18:23:37 -08:00
Aaron Patterson
2de9b858a0 to_sym stuff before passing it to arel 2010-12-22 18:23:37 -08:00
Aaron Patterson
186a1b1144 build an AST rather than build SQL strings 2010-12-22 18:23:37 -08:00