2012-03-26 5 views
2

Ich arbeite mit einem älteren Datenbankschema, das camelCase für seine Attribute verwendet, die Rails nicht zu gut in lesbare Form übersetzt. Für ein Modell kann ich zB definieren.Globale Attributlokalisierung

en: 
    active_record: 
    attributes: 
     user: 
     createDate: "Create date" 

Aber das funktioniert nur für das Benutzermodell. Gibt es eine Möglichkeit, "globale Attribut-Übersetzungen" zu definieren? So etwas wie

en: 
    activerecord: 
    attributes: 
     global: 
     createDate: "Create date" 

Vielen Dank.

Antwort

4

Rails Übersetzungen für Attribute in folgenden Orten Nachschlag (wenn Ihr Attributnamen nicht Namespaces ist):

  • activerecord.attributes {model_name} {} attribute_name
  • Attribute {attribute_name}
  • ...

(einen Blick auf die ruby-Dokumentation für human_attribute_name nehmen)

so zu erreichen, was Sie suchen oben, sollten Sie uns e die folgenden:

en: 
    attributes: 
    createDate: "Create date" 

können Sie immer noch diese ‚default‘ Attributnamen überschreiben, indem Übersetzungen wie Ihr erstes Beispiel Zugabe von z

en: 
    active_record: 
    attributes: 
     user: 
     createDate: "User creation date" 

bewirkt:

User.human_attribute_name(:createDate) => "User creation date" 
Topic.human_attribute_name(:createDate) => "Create date" 
SomeOtherModelClass.human_attribute_name(:createDate) => "Create date" 
+0

Genau das, was ich suchte. Vielen Dank. –