2012-03-26 71 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