2012-03-26 84 views
2

我正在使用遺留的數據庫模式,該模式使用camelCase作爲其屬性,Rails不能很好地將其轉換爲可讀的形式。對於一個模型,我可以定義例如。全局屬性本地化

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

但是,這隻適用於用戶模型。有沒有辦法定義「全局屬性轉換」?類似於

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

謝謝你。

回答

4

Rails會查找在以下位置屬性翻譯(如果你的屬性名稱沒有命名空間):

  • activerecord.attributes {MODEL_NAME} {} ATTRIBUTE_NAME
  • 屬性{屬性名稱}

(看看紅寶石文檔爲human_attribute_name

因此要實現你在找什麼你上面我們應該E以下:

en: 
    attributes: 
    createDate: "Create date" 

你仍然可以覆蓋這些「默認」加入翻譯喜歡你的第一個例子如屬性名

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

將導致:

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

正是我一直在尋找。謝謝。 – 2012-03-26 17:49:43