2016-03-31 69 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引用它們。然後在model_a下覆蓋assigned_date的值。所以,model_a.assigned_date爲您提供「模型特定翻譯」。如果沒有assigned_datemodel_a下的重新定義,model_a.assigned_date會給你「分配給工人」。

+0

真棒,謝謝V字! –

2

公共屬性可以去一個級別和被覆蓋的時候需要它

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