Böyle bir senaryo var: Her sonrası başka bir nesneye aitmongoid - kullanarak bir 1..N başvurulan ilişki içinde nesneleri çocukları seçmek için içerir
blog.posts
, bir belongs_to içinde (Etiket demek, Has_many ilişkisi), bu yüzden yapabilirsiniz: N + 1 sorunu önlemek için
tag.posts
, ben blog.posts yapabilmek istiyorum, ama aynı zamanda iki sorgular oluşturulur, böylece her yazının ilişkili her etiket kapmak, gönderiler için bir tane ve tüm etiketler için bir tane (gönderiye ait her bir tag_id temelinde).
Post.includes(:tag).where(:blog_id: blog.id)
bana tüm mesajları bir blog ait ve ayrıca her bir etiketi yayınıyla ilişkili ve kimlik haritasında koyarak elde alacak olan (sağlanan öyle:
Ben Yapabileceğim mongoid belgelerinde fark etkin).blog.posts
ve bir şekilde yukarıdaki istediğim şeyi yapma sorgusu yeniden tanımlamak: sorundur
, ben yapmak istiyorum. Bunu yapmanın bir yolu var mı? Şu anda
Ek süreye tanımlayarak bu hafifletici ediyorum: yapmam böylece
has_many :posts do
def with_tags
includes(:tag)
end
end
blog.posts.with_tags
ama
blog.posts
yukarıda yaptığı tercih ediyorum varsayılan olarak.
Şerefe.
Bunu yapmak için başka bir yolu var mı? yani bir mongoid nesneden mi? – K2xL