diff --git a/ruby/lib/jam_ruby/models/search.rb b/ruby/lib/jam_ruby/models/search.rb index 809183f1e..377b9fb32 100644 --- a/ruby/lib/jam_ruby/models/search.rb +++ b/ruby/lib/jam_ruby/models/search.rb @@ -6,7 +6,7 @@ module JamRuby LIMIT = 10 ORDER_FOLLOWS = ['Most Followed', :followed] - ORDER_LIKED = ['Most Plays', :plays] + ORDER_PLAYS = ['Most Plays', :plays] ORDER_PLAYING = ['Playing Now', :playing] ORDERINGS = [ORDER_FOLLOWS, ORDER_PLAYS, ORDER_PLAYING] ORDERING_KEYS = ORDERINGS.collect { |oo| oo[1] } diff --git a/ruby/lib/jam_ruby/models/user.rb b/ruby/lib/jam_ruby/models/user.rb index a7c443f29..1e9d8f4b3 100644 --- a/ruby/lib/jam_ruby/models/user.rb +++ b/ruby/lib/jam_ruby/models/user.rb @@ -903,7 +903,7 @@ module JamRuby def self.musician_search(params={}, current_user=nil) rel = User.where(:musician => true) unless (instrument = params[:instrument]).blank? - rel = rel.joins("INNER JOIN musicians_instruments AS minst ON minst.user_id = users.id") + rel = rel.joins("RIGHT JOIN musicians_instruments AS minst ON minst.user_id = users.id") .where(['minst.instrument_id = ?', instrument]) end @@ -935,6 +935,7 @@ module JamRuby perpage = params[:per_page] || 20 page = [params[:page].to_i, 1].max rel = rel.paginate(:page => page, :per_page => perpage) + # puts rel.to_sql rel end diff --git a/ruby/spec/factories.rb b/ruby/spec/factories.rb index 951cd7232..337a47e6e 100644 --- a/ruby/spec/factories.rb +++ b/ruby/spec/factories.rb @@ -110,6 +110,12 @@ FactoryGirl.define do priority 0 end + factory :musician_instrument2, :class => JamRuby::MusicianInstrument do + instrument { Instrument.find('tuba') } + proficiency_level 1 + priority 0 + end + factory :invited_user, :class => JamRuby::InvitedUser do sequence(:email) { |n| "user#{n}@someservice.com" } autofriend false diff --git a/ruby/spec/jam_ruby/models/musician_search_spec.rb b/ruby/spec/jam_ruby/models/musician_search_spec.rb index 475bab272..bfd372f91 100644 --- a/ruby/spec/jam_ruby/models/musician_search_spec.rb +++ b/ruby/spec/jam_ruby/models/musician_search_spec.rb @@ -54,7 +54,7 @@ describe User do results.all.count.should == 2 end - it "should find all musicians sorted by plays with pagination" do + it "should find all musicians sorted by plays " do pending end @@ -63,9 +63,13 @@ describe User do end it "should find musicians with an instrument" do - @user1.musician_instruments << FactoryGirl.build(:musician_instrument, user: @user1) - ii = @user1.instruments[0] - ii.should not_be nil + @user1.musician_instruments << FactoryGirl.build(:musician_instrument2, user: @user1) + ii = @user1.instruments.detect { |inst| inst.id == 'tuba' } + ii.should_not be_nil + params = { :instrument => ii.id } + results = User.musician_search(params) + results.all[0].instruments.detect {|inst| inst.id=='tuba'}.id.should == ii.id + results.all.count.should == 1 end it "should find musicians within a given distance of location" do