aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/association.rb
diff options
context:
space:
mode:
authorJon Leighton <j@jonathanleighton.com>2012-04-25 16:07:31 +0100
committerJon Leighton <j@jonathanleighton.com>2012-04-25 16:07:31 +0100
commit8b941e977c094bb2121f9eaef73f20392d20f581 (patch)
treefb61340ada51952ac9975d6c1a30db783cf5a417 /activerecord/lib/active_record/associations/association.rb
parent98de70e2e12cff98acbc38727e709ff99db331b6 (diff)
parent365b8b6db750151b786b0a7ef9e65a6824576f1b (diff)
downloadrails-8b941e977c094bb2121f9eaef73f20392d20f581.tar.gz
rails-8b941e977c094bb2121f9eaef73f20392d20f581.tar.bz2
rails-8b941e977c094bb2121f9eaef73f20392d20f581.zip
Merge remote-tracking branch 'kennyj/fix_5563'
Conflicts: activerecord/test/cases/associations/belongs_to_associations_test.rb
Diffstat (limited to 'activerecord/lib/active_record/associations/association.rb')
-rw-r--r--activerecord/lib/active_record/associations/association.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/associations/association.rb b/activerecord/lib/active_record/associations/association.rb
index 4e09a43f8e..e75003f261 100644
--- a/activerecord/lib/active_record/associations/association.rb
+++ b/activerecord/lib/active_record/associations/association.rb
@@ -132,7 +132,8 @@ module ActiveRecord
# ActiveRecord::RecordNotFound is rescued within the method, and it is
# not reraised. The proxy is \reset and +nil+ is the return value.
def load_target
- @target ||= find_target if find_target?
+ @target = find_target if (@stale_state && stale_target?) || find_target?
+
loaded! unless loaded?
target
rescue ActiveRecord::RecordNotFound