2016-04-04 6 views
-2

ürünlerin listesini almak için benim sorgu idi sonuçları almak:Yakut Sorgusu'ndan eşsiz ülke Takip edilenler

@listed_products = @products.where(:step => 5, :status => 1) 
          .includes(:product_attachments) 
          .includes(:product_reviews) 
          .order("created_at desc") 

sonuç dönüş ürünlerini de oluşur birçok benzer country örn:

name:prod1 
city:city1 
country:A 

name:prod2 
city:city3 
country:A 

name:prod3 
city:city5 
country:B 

Nasıl Sonuç sorgusundan sadece benzersiz ülke A,B filtreleyim? Ülkeye göre ürünü sıralamak için kullanıcı için bir açılır liste oluşturmak için ülke listesine ihtiyacım var. Teşekkürler!!

+0

'prod1', prod2' veya rastgele? Ülke listesine ihtiyacınız olsun, neden Dünya'da 'ürünler' sorgusundan almak istiyorsunuz? – mudasobwa

+0

@mudasobwa can 'list_products' sadece benzersiz ülkenin adını listelemek için genişletilebilir mi? Örneğin ülke adı için '@ listed_products_country'. – d3bug3r

+0

Sadece '@ products.where (: step => 5,: status => 1) .pluck (: ülke) .uniq' kullandığınız uniq ülkeler için Hey, bu ek içerir, sizin sorgunuza göre beacuse içerir. uniq contries sonra anlamı –

cevap

2

Bu deneyebilirsiniz -

@listed_products = @products.where(:step => 5, :status => 1) 
         .includes(:product_attachments) 
         .includes(:product_reviews) 
         .order("products.created_at desc") 

result = @listed_products.pluck(:country).uniq 
+0

Ayrı bir sorguya ihtiyacım var, '@ listed_products' sadece tüm listeleri listelemek için. – d3bug3r

+0

'@ listed_products.pluck (: ülke) .uniq' - Zaten' @ listed_products' içinde tüm kayıtlarınız varsa bu işlemi yapmalısınız. – dp7

+0

çalışmıyor, bir hata veriyor – d3bug3r

0

aşağıdaki kodu deneyin: A`: `prod` ülke` için döndürülmesi gerektiğini yukarıda resultset, Verilen

@listed_products = @products.where(:step => 5, :status => 1) 
          .includes(:product_attachments) 
          .includes(:product_reviews) 
          .order("created_at desc").uniq.pluck(:country) 
+0

çalışmıyor, bir hata veriyor – d3bug3r