Ransack, suche einen Datensatz mit allen verknüpften Datensätzen

8

Ich habe ein Rezeptmodell mit vielen Zutaten und jeder Zutat gehört zu einem Gegenstand. In meinem erweiterten Suchformular möchte ich, dass ein Benutzer mehrere Zutaten auswählt und Ransack ein Rezept findet, das alle vom Benutzer ausgewählten Zutaten enthält.

Ich habe folgendes Suchfeld ausprobiert:

%Vor%

Aber logisch, dies führt dazu, dass alle Rezepte angezeigt werden, die einen der ausgewählten Zutaten enthalten.

das Ändern von :ingredients_item_id_in in :ingredients_item_id_in_all führt zu einer inkorrekten Abfrage, da ein Datensatz nicht mehrere Werte von item_id enthalten kann.

Irgendwelche Ideen zum Erstellen dieses Suchparameters in Ransack, oder sollte ich dafür eine Unterabfrage erstellen?

Auf Anfrage, meine Controller-Methode für die Suche:

%Vor%     
bo-oz 17.11.2015, 21:35
quelle

1 Antwort

1

Ich bin kürzlich auf eine ähnliche Aufgabe für mein Projekt gestoßen ( Rails 4.2.4 / Ruby 2.3.1 ).

Estate hat viele Annehmlichkeiten. Ich brauche alle Anwesen, die alle ausgewählten Annehmlichkeiten enthalten.

So habe ich es mit Ransack

gelöst

In meinem Fall habe ich has_many :through relation.

estate.rb

%Vor%

comfort.rb

%Vor%

estate_comfort.rb

%Vor%

Bei komplexen Abfragen müssen Sie nach post suchen. Dafür müssen Sie solche Routen bearbeiten. Fügen Sie search action zu estates_controlle.rb hinzu. Für weitere Informationen lesen Sie Ransack Wiki

routes.rb

%Vor%

estates_controller.rb

%Vor%

Und schließlich der Vorlagenbereich ...

estates / index.haml

%Vor%

Generiert folgendes HTML

%Vor%
    
Pav31 01.09.2016 12:23
quelle

Tags und Links