شروط أكتيفيريكورد من جمعية (القضبان)
-
05-07-2019 - |
سؤال
ونتظاهر لدي نموذج والبريد التي has_many: تعليقات. كيف يمكنني فقط عرض الوظائف التي لديك تعليقات؟
وأنا مرتاح نوعا ما مع named_scope لكني لا أعرف كيف يمكن أن أضع Post.comments (أو self.comments) في: تجزئة الشروط التي تتوقع حرف
class Post < ActiveRecord::Base
has_many :comments
named_scope :with_comments, :conditions => [#self.comments.length > 0]
end
وماذا أكتب في منطقة علق؟
وشكرا!
المحلول
وربما يكون من الأفضل أن تضع counter_cache على المشاركة.
class Comment < AR:Base
belongs_to :post, :counter_cache => true
end
وبعد ذلك ما عليك سوى أن تفعل 1 استعلام بدلا من اثنين.
وPost.find(:all, :conditions => ["counter_cache > 0"])
نصائح أخرى
ويجب أن تكون قادرة على الانضمام فقط ضد طاولة تعليقاتكم، مع التأكد من تحديد الصفوف متميزة
named_scope :with_comments, :joins => :comments, :select => 'DISTINCT posts.*'
لا تنتمي إلى StackOverflow