aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/belongs_to_association.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/associations/belongs_to_association.rb')
-rw-r--r--activerecord/lib/active_record/associations/belongs_to_association.rb20
1 files changed, 11 insertions, 9 deletions
diff --git a/activerecord/lib/active_record/associations/belongs_to_association.rb b/activerecord/lib/active_record/associations/belongs_to_association.rb
index 2eb56e5cd3..34b6cd5576 100644
--- a/activerecord/lib/active_record/associations/belongs_to_association.rb
+++ b/activerecord/lib/active_record/associations/belongs_to_association.rb
@@ -50,19 +50,21 @@ module ActiveRecord
"find"
end
- options = @reflection.options.dup
- (options.keys - [:select, :include, :readonly]).each do |key|
- options.delete key
- end
- options[:conditions] = conditions
+ options = @reflection.options.dup.slice(:select, :include, :readonly)
- the_target = @reflection.klass.send(find_method,
- @owner[@reflection.primary_key_name],
- options
- ) if @owner[@reflection.primary_key_name]
+ the_target = with_scope(:find => @scope[:find]) do
+ @reflection.klass.send(find_method,
+ @owner[@reflection.primary_key_name],
+ options
+ ) if @owner[@reflection.primary_key_name]
+ end
set_inverse_instance(the_target, @owner)
the_target
end
+
+ def construct_find_scope
+ { :conditions => conditions }
+ end
def foreign_key_present
!@owner[@reflection.primary_key_name].nil?