Select distinct people in contacts index

This commit is contained in:
Raphael Sofaer 2011-08-11 11:56:23 -07:00
parent a2043671ce
commit 7021cd79c8
2 changed files with 9 additions and 0 deletions

View file

@ -25,6 +25,7 @@ class ContactsController < ApplicationController
format.mobile { @contacts = sort_and_paginate_profiles(@contacts) }
format.json {
@people = Person.joins(:contacts => :aspect_memberships).
select('DISTINCT people.*').
where(:contacts => { :user_id => current_user.id },
:aspect_memberships => { :aspect_id => params[:aspect_ids] })

View file

@ -67,6 +67,14 @@ describe ContactsController do
get :index
save_fixture(html_for("body"), "aspects_manage")
end
it 'does not select duplicate contacts' do
aspect = bob.aspects.create(:name => 'hilarious people')
aspect.contacts << bob.contact_for(eve.person)
get :index, :format => 'json', :aspect_ids => bob.aspect_ids
assigns[:people].map{|p| p.id}.uniq.should == assigns[:people].map{|p| p.id}
assigns[:people].should == bob.contacts.map(&:person)
end
end
describe '#featured' do