diff options
Diffstat (limited to 'activerecord/lib/active_record/associations/has_many_through_association.rb')
-rw-r--r-- | activerecord/lib/active_record/associations/has_many_through_association.rb | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/associations/has_many_through_association.rb b/activerecord/lib/active_record/associations/has_many_through_association.rb index 8cafb26d44..037c375cde 100644 --- a/activerecord/lib/active_record/associations/has_many_through_association.rb +++ b/activerecord/lib/active_record/associations/has_many_through_association.rb @@ -56,9 +56,9 @@ module ActiveRecord @reflection.klass.with_scope(construct_scope) { @reflection.klass.send(method, *args, &block) } end end - + def find_target - @reflection.klass.find(:all, + records = @reflection.klass.find(:all, :select => construct_select, :conditions => construct_conditions, :from => construct_from, @@ -68,6 +68,8 @@ module ActiveRecord :group => @reflection.options[:group], :include => @reflection.options[:include] || @reflection.source_reflection.options[:include] ) + + @reflection.options[:uniq] ? records.to_set.to_a : records end def construct_conditions |