2012-03-26 9 views
2

私は、その属性にcamelCaseを使用する従来のデータベーススキーマを使用しています.Railsは人間が読める形式にはあまり変換されません。 1つのモデルについて、私は例えばを定義することができる。グローバル属性のローカライゼーション

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

しかし、これはUserモデルでのみ機能します。 「グローバル属性変換」を定義する方法はありますか?何かのように

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

ありがとう。 (自分の属性名が名前空間されていない場合)

答えて

4

Railsは、次の場所での属性の翻訳を検索します:

  • activerecord.attributesを{MODEL_NAME} {ATTRIBUTE_NAME}
  • 属性{ATTRIBUTE_NAME}
  • 。。。

human_attribute_nameのためのRubyのドキュメントを見てみましょう)

ので、あなたが私たちのすべき上記の探しているものを達成するために、あなたはまだ、例えば、あなたの最初の例のように翻訳を追加することにより、これらの「デフォルト」属性名を上書きすることができ

en: 
    attributes: 
    createDate: "Create date" 

:e。次私が探していたまさに

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

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

はになります。ありがとう。 –