2016-04-08 12 views
0

Ich arbeite an einer Spree-Commerce-Anwendung. Ich habe Probleme mit Produktfiltern. Ich kann Bereichsfilter bearbeiten, aber ich möchte den Filter "Alle Preise" hinzufügen. HierFilterbereich auf Spree Commerce

ist der Code:

conds = [ [ Spree.t(:or_over_price, price: format_price(0)) , v[:amount].gteq(0)], 
        [ "#{format_price(25000)} - #{format_price(50000)}"  , v[:amount].in(25000..50000)], 
        [ "#{format_price(50000)} - #{format_price(75000)}"  , v[:amount].in(50000..75000)], 
        [ "#{format_price(75000)} - #{format_price(100000)}"  , v[:amount].in(75000..100000)]] 
     { 

So arbeitet als 0 oder über. Aber ich will es zeigen, wie „alle Preise“

Ich brauche diese Linie zu ändern, aber ich weiß nicht, wie:

[ Spree.t(:or_over_price, price: format_price(0)) , v[:amount].gteq(0)] 

Vielen Dank im Voraus.

+0

Wie dies von einem Fall unterscheiden würde, wenn keine der Bedingungen ausgewählt werden? Was erwarten Sie, wenn sowohl "alle Preise" als auch beliebige Preisbereiche ausgewählt werden? – joanbm

+0

Es ist ein Radiobutton, es ist nicht abwählbar, Sie können also zu "keine Bedingungen" zurückkehren. – Thrasher

+1

Wenn Sie dann die Verarbeitung der Preisfilter geändert haben (nein, Änderung auf Ansichtsebene ist nicht genug), können Sie Bedingung verwenden was wie in Ihrem letzten Beispiel zu allen Fällen passt, verwenden Sie eine leere wie '['all', nil]' oder führen Sie eine benutzerdefinierte Behandlung in einem Controller durch. – joanbm

Antwort

1

Fügen Sie einfach auf Ihre config/locales/en.yml

all_prices: all prices 

dann Array in Ihrem conds

conds = [ [ Spree.t(:all_prices) , v[:amount].gteq(0)], 
       [ "#{format_price(25000)} - #{format_price(50000)}"  , v[:amount].in(25000..50000)], 
       [ "#{format_price(50000)} - #{format_price(75000)}"  , v[:amount].in(50000..75000)], 
       [ "#{format_price(75000)} - #{format_price(100000)}"  , v[:amount].in(75000..100000)]] 
    { 
+0

Aber ich möchte or_over_price später verwenden. Sollte ich all_prices dann erstellen? – Thrasher

+0

Ja, wenn Sie or_over_price behalten möchten, sollten Sie all_prices erstellen. –