2016-03-31 7 views
0

同じデータを表す属性を含む、いくつかの関連していない別個のARモデルがあります。私はこれらの属性の翻訳を設定するとき、私は現在...として、それらを設定してい 複数のアクティブレコードモデルの属性変換

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

は、ワイルドカードファッションのいくつかの種類では、この翻訳一度 を定義する方法はありますか?

私が最も理にかなって思ったアプローチ...

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

は動作しませんARは明らかにattributes

答えて

0

下の階層でモデル名を探しているので、はい、あなたは "定義することができますノードアンカー "を参照し、後でそれらを参照してください。さらに、「ノード・アンカー」セクションで定義されている属性を、別の値で再定義することもできます。

使用を次のように

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

この場合、あなたはノードアンカー&defaultsを定義し、model_a内でそれらを参照します。次に、assigned_dateの値をmodel_aの下に上書きします。したがって、model_a.assigned_dateは "モデル固有の翻訳"を提供します。 assigned_datemodel_aの下に再定義しないと、model_a.assigned_dateは "ワーカーに割り当てられます"と表示します。

+0

恐ろしいそれを必要とするときに上書きされて! –

2

共通の属性は、1つのレベル上を行くことができると感謝をVEE、

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