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%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
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
Tags und Links ruby-on-rails ransack