निम्न का प्रयास करें:
@resources = Resouce.select("resources.*, COUNT(votes.id) vote_count")
.joins(:votes)
.where(language_id: "ruby")
.group("resources.id")
.order("vote_count DESC")
@resources.each { |r| puts "#{r.whatever} #{r.vote_count}" }
0 वोट वाले संसाधनों को शामिल करने के लिए, बाहरी जुड़ाव का उपयोग करें। यदि नीचे दिया गया उदाहरण काम नहीं करता है, तो आपको सही संबंधों में शामिल होने के लिए जॉइन स्टेटमेंट को बदलना होगा।
@resources = Resource.select("resources.*, COUNT(votes.id) vote_count")
.joins("LEFT OUTER JOIN votes ON votes.votable_id = resources.id AND votes.votable_type = 'Resource'")
.where(language_id: "ruby")
.group("resources.id")
.order("vote_count DESC")