aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Koziarski <michael@koziarski.com>2008-10-10 17:02:47 +0200
committerMichael Koziarski <michael@koziarski.com>2008-10-10 17:04:46 +0200
commitcb45ee344d5ec6974b78dc593e4eaef2101e3d42 (patch)
treeb26c2b88e8630ce085ed8f3186e6aa37b56f82f0
parent4c05055487e149bfa4152c1b42f3519671ca22ac (diff)
downloadrails-cb45ee344d5ec6974b78dc593e4eaef2101e3d42.tar.gz
rails-cb45ee344d5ec6974b78dc593e4eaef2101e3d42.tar.bz2
rails-cb45ee344d5ec6974b78dc593e4eaef2101e3d42.zip
Remove the functionality introduce in 28d3390
There are several situations it doesn't cater for, and the inconsistency isn't worth blocking 2.2.
-rwxr-xr-xactiverecord/lib/active_record/associations.rb13
-rw-r--r--activerecord/test/cases/associations/belongs_to_associations_test.rb13
-rw-r--r--activerecord/test/cases/associations_test.rb20
3 files changed, 1 insertions, 45 deletions
diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb
index 7c0d0cb689..ad093d83d4 100755
--- a/activerecord/lib/active_record/associations.rb
+++ b/activerecord/lib/active_record/associations.rb
@@ -1235,7 +1235,7 @@ module ActiveRecord
association = instance_variable_get(ivar) if instance_variable_defined?(ivar)
- if association.nil? || !association.loaded? || force_reload
+ if association.nil? || force_reload
association = association_proxy_class.new(self, reflection)
retval = association.reload
if retval.nil? and association_proxy_class == BelongsToAssociation
@@ -1269,17 +1269,6 @@ module ActiveRecord
end
end
- if association_proxy_class == BelongsToAssociation
- define_method("#{reflection.primary_key_name}=") do |target_id|
- if instance_variable_defined?(ivar)
- if association = instance_variable_get(ivar)
- association.reset
- end
- end
- write_attribute(reflection.primary_key_name, target_id)
- end
- end
-
define_method("set_#{reflection.name}_target") do |target|
return if target.nil? and association_proxy_class == BelongsToAssociation
association = association_proxy_class.new(self, reflection)
diff --git a/activerecord/test/cases/associations/belongs_to_associations_test.rb b/activerecord/test/cases/associations/belongs_to_associations_test.rb
index 37b6836a89..9c718c4fef 100644
--- a/activerecord/test/cases/associations/belongs_to_associations_test.rb
+++ b/activerecord/test/cases/associations/belongs_to_associations_test.rb
@@ -47,19 +47,6 @@ class BelongsToAssociationsTest < ActiveRecord::TestCase
assert_equal apple.id, citibank.firm_id
end
- def test_foreign_key_assignment
- # Test using an existing record
- signals37 = accounts(:signals37)
- assert_equal companies(:first_firm), signals37.firm
- signals37.firm_id = companies(:another_firm).id
- assert_equal companies(:another_firm), signals37.firm
-
- # Test using a new record
- account = Account.new
- account.firm_id = companies(:another_firm).id
- assert_equal companies(:another_firm), account.firm
- end
-
def test_no_unexpected_aliasing
first_firm = companies(:first_firm)
another_firm = companies(:another_firm)
diff --git a/activerecord/test/cases/associations_test.rb b/activerecord/test/cases/associations_test.rb
index cde451de0e..056a29438a 100644
--- a/activerecord/test/cases/associations_test.rb
+++ b/activerecord/test/cases/associations_test.rb
@@ -182,26 +182,6 @@ class AssociationProxyTest < ActiveRecord::TestCase
assert_nil p.author.reset
end
- def test_reset_loads_association_next_time
- welcome = posts(:welcome)
- david = authors(:david)
- author_assoc = welcome.author
-
- assert_equal david, welcome.author # So we can be sure the test works correctly
- author_assoc.reset
- assert !author_assoc.loaded?
- assert_nil author_assoc.target
- assert_equal david, welcome.author
- end
-
- def test_assigning_association_id_after_reload
- welcome = posts(:welcome)
- welcome.reload
- assert_nothing_raised do
- welcome.author_id = authors(:david).id
- end
- end
-
def test_reload_returns_assocition
david = developers(:david)
assert_nothing_raised do