2016-04-04 6 views
-2

nach meiner Abfrage Liste der Produkte zu bekommen waren:Ruby on Rails bekommen einzigartiges Land von Abfrageergebnisse

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

Das Ergebnis Return-Produkte, die auch viele ähnliche country zB bestehen:

name:prod1 
city:city1 
country:A 

name:prod2 
city:city3 
country:A 

name:prod3 
city:city5 
country:B 

Wie kann Ich filtere nur das eindeutige Land A,B aus der Ergebnisabfrage heraus? Ich brauche nur eine Länderliste, um eine Dropdown-Liste zu erstellen, damit der Benutzer das Produkt nach Ländern sortiert. Vielen Dank!!

+0

die resultset oben gegeben, was 'prod' für' Land zurückgegeben werden soll: A': 'prod1', 'prod2' oder zufällig? Ob Sie die Länderliste brauchen, warum auf der Erde wollen Sie es von der 'Produkt'-Abfrage bekommen? – mudasobwa

+0

@mudasobwa kann '@ Listed_Products' erweitert werden, nur um den Namen des einzigartigen Landes aufzulisten? zB '@ listed_products_country' für den Namen des Listenlandes. – d3bug3r

+0

Hey für uniq Länder verwenden Sie einfach '@ products.where (: step => 5,: status => 1) .pluck (: country) .uniq' anstatt diese zusätzliche Include zu verwenden, denn je nach Ihrer Anfrage wird es keine haben Bedeutung nach uniq contries –

Antwort

2

Sie können versuchen, diese -

@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

Ich brauche separate Abfrage, '@ Listed_products' ist nur um alle Listen aufzulisten. – d3bug3r

+0

'@ Listed_Products.Pluck (: country) .uniq' - dies sollte die Arbeit tun, wenn Sie bereits alle Datensätze in' @listed_products' haben. – dp7

+0

funktioniert nicht, gibt einen Fehler – d3bug3r

0

den Code unten Versuchen:

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

funktioniert nicht, gibt einen Fehler – d3bug3r