Einfache Weg, um immer ein Feld in Kleinbuchstaben db
Zurzeit mache ich die folgenden im Modell:
before_save :to_lower
before_create :to_lower
def to_lower
self.name = self.name.downcase
end
Scheint ziemlich repetitiv mir.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nicht die before_create wenn Sie bereits before_save.
name
ist optional, es ist besser, Sie zu verwenden versuchen.Ich in der Regel behandeln diese Fälle mit:
Warum tust du das? Wenn es zur Durchführung von groß-und Kleinschreibung suchen, können Sie nur wollen, um Sie in Ihre Abfrage-Logik (tatsächlich glaube ich, dass Rails nicht ein bisschen, dass es schon). Allerdings, wenn Sie wirklich wollen, werden die Daten normalisiert, um Kleinbuchstaben in der DB (sprich, wenn man sich mit SHA1-hashes oder so etwas), dann sind Sie das richtige tun.
WHERE LOWER(field) = LOWER(input)
ist deutlich langsamer alsWHERE field = LOWER(input)
.