2016-03-31 15 views
0

Ich habe mehrere verwandte, aber dennoch unterschiedliche AR-Modelle, die Attribute enthalten, die dasselbe Datenelement darstellen. Wenn ich Übersetzungen für diese Attribute einrichten, ich bin zur Zeit sie als ...Attributübersetzungen für mehrere Active Record-Modelle

en: 
    activerecord: 
    attributes: 
     model_a: 
     assigned_date: "Assigned to worker" 
     model_b: 
     assigned_date: "Assigned to worker" 
     [ ... ] 

Gibt es eine Möglichkeit diese Einstellung Übersetzung einmal, in einer Art Wildcard Art und Weise zu definieren?

Der Ansatz, den ich am meisten Sinn gemacht dachte ...

en: 
    activerecord: 
    attributes: 
     assigned_date: "Assigned to worker" 
     model_a: 
     [ model-specific translations here ] 

funktioniert nicht, weil AR offensichtlich für einen Modellname in der Ebene unterhalb attributes

Antwort

0

Ja suchen, könnten Sie definieren " Knotenanker "und referenzieren sie später. Zusätzlich könnten Sie Attribute, die im Abschnitt "Knotenanker" definiert sind, mit anderen Werten neu definieren, was Ihre Anforderung ist.

Verwenden Sie wie folgt vor:

en: 
    activerecord: 
    defaults: &defaults 
     assigned_date: "Assigned to worker" 
    attributes: 
     model_a: 
     <<: *defaults 
     assigned_date: Model specific translation 

In diesem Fall definieren Sie Knoten Anker &defaults und verweisen sie innerhalb model_a. Dann überschreiben Sie den Wert für assigned_date unter model_a. Also, model_a.assigned_date gibt Ihnen "Modellspezifische Übersetzung". Ohne die Neudefinition assigned_date unter model_a wird model_a.assigned_date Ihnen "Zugewiesen an Arbeiter" geben.

+0

Awesome, dank vee! –

2

gemeinsame Attribute können eine Ebene nach oben gehen und überschrieben, wenn es brauchen

en: 
    attributes: 
     first_name: Name 
    activerecord: 
     attributes: 
      user: 
       email: Email 
      admin: 
       first_name: First Name 
Verwandte Themen