Ich habe ein Personenmodell, das Namen enthält, und ich möchte diese so einfach wie möglich suchen.
Gibt es eine Methode "rails / ActiveRecord" in den Zeilen von People.like(:name => "%#{query}%")
, wie bei DataMapper? Ich konnte in den ActiveRecord-Dokumenten nichts dergleichen finden, aber ich bin schockiert, wenn es einfach nicht möglich ist.
Momentan mache ich Person.where "name LIKE '%#{query}%'"
, was gut funktioniert, aber eine offensichtliche SQL-Injection-Schwachstelle ist.
Schienen 3.2
Verwenden Sie stattdessen eine parametrisierte Abfrage, um SQL-Injektionen wie folgt zu vermeiden:
%Vor% Beachten Sie, dass die Prozentzeichen müssen Teil des Parameters sein müssen, nicht die where
-Klausel oder Rails werden es umgehen, und Sie erhalten einen Syntaxfehler. (Zumindest bei Postgres.)
Tags und Links ruby-on-rails activerecord postgresql