Ich bin neu in ROR und versuche, die Suche in der PostgreSQL-Datenbank mit Active Record zu implementieren. Ich habe gefunden, dass, um Suche unabhängig von der Suche machen kann ich ILIKE
Operator anstelle von equals
und LIKE
aber nicht sicher, was zu tun ist, wenn ich IN
Operator verwenden muss.Suche ohne Berücksichtigung von Groß- und Kleinschreibung mit dem Operator IN in Ruby on Rails und PostgreSQL
Ich erhalte einen Feldnamen und eine Sammlung von Werten, die ich brauche, um zu überprüfen und Groß- und Kleinschreibung Suche funktioniert wie folgt aus:
records = records.where(filter['fieldName'] => filter['value'])
wo filter['value']
ein Array ist.
Gibt es eine Möglichkeit, diese Zeile zu aktualisieren, um Groß- und Kleinschreibung zu vermeiden?
Wenn kein dann glaube ich, die einzige Möglichkeit, eine Schleife durch das Array ist und geteilt IN
in viele OR
Operationen und verwenden ILIKE
für jeden einzelnen Wert in diesem Array (aber ich bin nicht sicher, wie zu verwenden oder mit Active Record) ?
Danke!
Wo ist der "Filter" hash herkommt. Sieht aus wie SQLI anfällig für mich. Können Sie die in der DB bereits herabgestuften Werte speichern? Können Sie zusätzliche Indizes hinzufügen? –
@ Pascalbetz Filter ist ein Teil meiner benutzerdefinierten Struktur, die ich über REST aus einer anderen App senden. Leider muss ich einen echten Fall in der Datenbank behalten, aber ich habe es fast mit den folgenden Vorschlägen behoben. –