2011-07-03 5 views
7

कोई काउंटर कैश के साथ कई रिश्ते में मैं माता-पिता को बिना किसी बच्चे के कैसे ढूंढ सकता हूं?रेल 3 ढूंढने वाले माता-पिता जिनके पास कोई बच्चा नहीं है

user.rb

has_many :pages 

page.rb

belongs_to :user 

मैं कोशिश की है

User.includes(:pages).where("pages.user_id is NULL") 

यह MySQL में मुसीबत बना रही है।

उत्तर

14

प्रयास करें

User.joins("left join pages on pages.user_id = users.id").where("pages.user_id is null") 
+0

धन्यवाद यह मुझे बहुत मदद की। – rubyrubyruby

+0

+1 क्योंकि एरल सुंदर है – jaydel

+0

धन्यवाद, इससे मुझे बहुत मदद मिली! – sidney

0

एक तरह से

User.where("(SELECT COUNT(*) FROM pages WHERE pages.user_id = users.id) = 0") 

होगा लेकिन मुझे यकीन है कि कैसे (में) कुशल है कि हो सकता है नहीं कर रहा हूँ।

+2

गिनती (*) ऐसा कुछ नहीं है जिसे मैं व्यक्तिगत रूप से चलाने के लिए चाहता हूं यदि यह एक आम प्रश्न था। –

0

मेरा मानना ​​है कि

User.all(:joins => :comments, :select => "users.*, count(comments.id) as comments_count", :group => "users.id") 

की तरह कुछ भी काम कर सकते हैं ...

संबंधित मुद्दे