3

我有一個深深嵌套的模型窗體。Rails 3.1中嵌套的模型屬性本地化錯誤消息

當嵌套模型屬性是在錯誤的錯誤信息顯示的是:

列表項標識符URL可能不爲空。

那就是:

MODEL_NAME +屬性+本地化文件錯誤信息

正確的信息應該是:

項目鏈接URL不能爲空。

ruby-1.9.2-p290 :014 > ListItem.human_attribute_name("identifier") 
=> "Item Link" 

本地化是除了嵌套模型屬性中的錯誤消息名稱,否則工作的罰款。

看起來這是在2.3.4中的bug已修復,但我無法弄清楚。

回答

1

不知道如果這是「正確」的方式來解決這個問題,但這將工作。

在您的本地化文件,你可能有這樣的事情:

en: 
    activerecord: 
    attributes: 
     list_item: 
     identifier: Item Link 

這將工作,只要你從嵌套模式可以直接解決這個問題。軌驗證似乎是通過父模型中去,所以你需要的東西,如:

en: 
    activerecord: 
    attributes: 
     list_item: 
     identifier: Item Link 
     parent_model: 
     list_item: 
      identifier: Item Link 

對我來說這似乎打破了DRY原則,因爲你必須在嵌套層次過多重複人類可讀的名字,但這應該爲你工作。

+0

我可以發誓我試過了,它沒有奏效。我會再試一次。 – 2012-03-13 22:24:23

+0

也可以嘗試'list/list_item:'按照http://www.soulcutter.com/blog/2013/localization-of-nested-attributes-in-rails-3-dot-2/ – toxaq 2014-07-18 02:56:09