diff --git a/activerecord/lib/active_record/associations/has_many_association.rb b/activerecord/lib/active_record/associations/has_many_association.rb index f6bceee93a..272a1fe567 100644 --- a/activerecord/lib/active_record/associations/has_many_association.rb +++ b/activerecord/lib/active_record/associations/has_many_association.rb @@ -65,9 +65,7 @@ module ActiveRecord load_target.select { |record| ids.include?(record.id) } end else - original_conditions = options[:conditions] ? " AND #{options[:conditions]}" : "" - options[:conditions] = - "#{@association_class_primary_key_name} = #{@owner.quoted_id} #{@conditions ? " AND " + @conditions : ""}#{original_conditions}" + options[:conditions] = @finder_sql + (options[:conditions] ? " AND #{options[:conditions]}" : "") @association_class.find(args.size == 1 ? args.first : args, options) end end diff --git a/activerecord/lib/active_record/deprecated_finders.rb b/activerecord/lib/active_record/deprecated_finders.rb index cdbba37085..adc73e0d5d 100644 --- a/activerecord/lib/active_record/deprecated_finders.rb +++ b/activerecord/lib/active_record/deprecated_finders.rb @@ -34,7 +34,7 @@ module ActiveRecord # Project.find_all ["category = ?", category_name], "created ASC", [15, 20] def find_all(conditions = nil, orderings = nil, limit = nil, joins = nil) limit, offset = limit.is_a?(Array) ? limit : [ limit, nil ] - find(:all, { :conditions => conditions, :order => orderings, :joins => joins, :limit => limit, :offset => offset}) + find(:all, :conditions => conditions, :order => orderings, :joins => joins, :limit => limit, :offset => offset) end end end