Abstract load_target conditional logic

This commit is contained in:
Jon Leighton
2011-01-24 20:47:06 +00:00
parent d392c67d2c
commit de05e2fb15
2 changed files with 7 additions and 6 deletions

View File

@@ -359,7 +359,7 @@ module ActiveRecord
end
def load_target
if (!@owner.new_record? || foreign_key_present?) && !loaded?
if find_target?
targets = []
begin

View File

@@ -226,18 +226,19 @@ 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
if !loaded? && (!@owner.new_record? || foreign_key_present?) && target_klass
@target = find_target
end
@target = find_target if find_target?
loaded
@target
target
rescue ActiveRecord::RecordNotFound
reset
end
private
def find_target?
!loaded? && (!@owner.new_record? || foreign_key_present?) && target_klass
end
def interpolate_sql(sql, record = nil)
@owner.send(:interpolate_sql, sql, record)
end