2016-11-15 1 views
0

ich eine Datenbanktabelle payments mit einer Spalte Zahlung haben, die Bargeld sein, Karte etc ..Rails zeigen uniq Ergebnisse in Drop-Down-

In meiner Zahlungen Indexansicht ich einen Filter hinzufügen möchten, indem Sie die Zahlungsart um Ergebnisse zu filtern.

Das Beste, was ich kam so weit oben ist:

<%= f.select :PAYMENT_eq, options_from_collection_for_select(Payment.uniq, :ID, :PAYMENT, @q.PAYMENT_eq), {:include_blank => true}, {class: 'myselect'} %> 

, die eine Dropdown-Liste mit Zahlungstypen zeigt. Das Problem ist, dass es eine Option für jede Zeile zurückgibt. Zum Beispiel, wenn ich 10 Zahlungen mit Zahlungsart Bargeld habe, sehe ich im Dropdown 10 Optionen bar.

Die Syntax, die ich für diesen Filter verwendet habe, ist die gleiche, die ich für Filter auf associations verwende, während dies nicht ist. Vielleicht bin ich zu kompliziert, aber ich konnte mir keine andere Lösung vorstellen.

Ich habe Payment.uniq versucht, aber es funktioniert nicht.

Wie kann ich es beheben?

Antwort

1

Versuchen Sie, die Zahlungen Rupfen und anwenden .uniq auf sie

Wenn Sie Duplikate in der Payment Modell haben nicht :id zupfen oder die Zahlungen aus einer anderen Tabelle zu wählen, wenn Sie PaymentType oder PaymentMethod haben

<%= f.select :PAYMENT_eq, options_for_select(Payment.pluck(:PAYMENT).uniq, @q.PAYMENT_eq), {:include_blank => true}, {class: 'myselect'} %> 
+0

Perfekt das hat funktioniert, danke! – Catmal