aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/autosave_association.rb
diff options
context:
space:
mode:
authorSzymon Nowak <szimek@gmail.com>2009-07-15 22:22:25 +0200
committerJeremy Kemper <jeremy@bitsweat.net>2009-07-15 18:13:32 -0700
commit1c11437a32a973fa9b521c32caa7256f9772acd7 (patch)
treee2a38c67d3ab84c5abdb80756ed69befa36ff574 /activerecord/lib/active_record/autosave_association.rb
parent0920e69244026ec83471bb4571e56300045307d3 (diff)
downloadrails-1c11437a32a973fa9b521c32caa7256f9772acd7.tar.gz
rails-1c11437a32a973fa9b521c32caa7256f9772acd7.tar.bz2
rails-1c11437a32a973fa9b521c32caa7256f9772acd7.zip
Add primary_key option to belongs_to association
[#765 state:committed] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
Diffstat (limited to 'activerecord/lib/active_record/autosave_association.rb')
-rw-r--r--activerecord/lib/active_record/autosave_association.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/autosave_association.rb b/activerecord/lib/active_record/autosave_association.rb
index a540570f42..c1bc8423a9 100644
--- a/activerecord/lib/active_record/autosave_association.rb
+++ b/activerecord/lib/active_record/autosave_association.rb
@@ -339,7 +339,8 @@ module ActiveRecord
association.save(!autosave) if association.new_record? || autosave
if association.updated?
- self[reflection.primary_key_name] = association.id
+ association_id = association.send(reflection.options[:primary_key] || :id)
+ self[reflection.primary_key_name] = association_id
# TODO: Removing this code doesn't seem to matter…
if reflection.options[:polymorphic]
self[reflection.options[:foreign_type]] = association.class.base_class.name.to_s