0
친구들,이 쿼리를 만들기 위해 고심하고 있습니다. 하나의 스포츠와 1 개의 장소가 있으며, 둘 다 많은 활동을 할 수 있습니다. 특정 스포츠가 그 장소에서 연습 된 빈도를 기준으로 상위 10 개 장소를 선택하는 쿼리가 필요합니다. 나는 어디에서 오류가 발생합니다 : (: activities.sport_id => @ sport.id), 나는이 부분을 어떻게 할 수 있는지 알지 못한다.레일 쿼리는 많은 관계가 있습니다
class Activity < ActiveRecord::Base
has_one :sport
belongs_to :place
class Sport < ActiveRecord::Base
has_many :activities, :class_name => "Activity", :foreign_key => "sport_id"
has_many :places, through: :activities
class Place < ActiveRecord::Base
has_many :activities, :class_name => "Activity", :foreign_key => "place_id"
has_many :sports, through: :activities
def show
@places = Place.where(:activities.sport_id => @sport.id).sort{ |a,b| b.activityfrequency(@sport.name) <=> a.activityfrequency(@sport.name)}.take(10)
end