Verwendung von titleize für Akronym in Rails

8

Ich definiere einige aktive Datensätze mit Akronymen. RvPark (Freizeitpark). Wenn ich den Klassennamen title, bekomme ich 'Rv Park'. Es sollte wirklich "RV Park" sein. Gibt es einen guten Weg, dies zu tun? Da dieses Modell Code mit anderen Modellen teilt, muss ich eine generische Lösung erstellen, aber es ist mir nicht gelungen, eine zu finden.

Ich habe eine Diskussion darüber gesehen, aber es gab keine Lösung, die für mich funktionierte. jede Einsicht wird geschätzt.

Ссылка

    
Jae Cho 29.03.2011, 00:09
quelle

2 Antworten

4

UPDATE: Akronym-Unterstützung wurde dem Rails Inflator hinzugefügt , nachdem ich dies gepostet habe. Siehe @ Ansons Antwort für Rails 3.2 und höher.

Das sieht nach einem Randfall aus, für den titleize nicht entworfen wurde. Das Problem ist, dass der Aufruf von capitalize in RV immer zu Rv wird.

Ich würde eine generische Namensfunktion für die Modelle erstellen, die self.class.titleize intern aufrufen und dann im RVPark-Modell überladen.

    
Adam Lassek 29.03.2011, 00:21
quelle
14

Sie können dies tun, indem Sie ActiveSupport :: Inflector konfigurieren, wodurch titleize Methode. Definieren Sie einfach Ihre eigenen Flexionen in einem Initialisierer.

%Vor%

Starten Sie Ihre App neu, um die Änderung zu übernehmen. Jetzt weiß titleize , wie man mit "RV" umgeht. Starten Sie eine Rails-Konsole, um es auszuprobieren:

%Vor%

Siehe die verlinkten Dokumente für mehr coole Sachen, die du mit Beugungen machen kannst.

    
Anson 25.03.2014 14:42
quelle

Tags und Links