7

在我en.yml翻譯文件,我有:如何覆蓋ruby-on-rails中的通用activerecord錯誤消息?

activerecord: 
    errors: 
    template: 
     header: 
     one: "1 error prohibited this {{model}} from being saved" 
     other: "{{count}} errors prohibited this {{model}} from being saved" 

當登錄到我的應用程序,該錯誤信息過程中出現的ActiveRecord /驗證錯誤:

「1個錯誤禁止該用戶會話從保存「

顯示(其中user_session是正在使用的模型)。我寧願讓它說一些像

「發生錯誤,以防止您登錄到您的帳戶」。

如何覆蓋我的特定錯誤信息?

回答

11

我發現了下面的路徑Rails(2.3.8)來翻譯錯誤消息(使用i18n 0.6.0): 另外,不要忘記更改full_messages格式,以便它與您的自定義消息一致。

下面是一個模型「馬」的例子,它驗證屬性「名稱」(不能爲空)。

在你的模型(APP /模型/ horse.rb):

validates_presence_of :name 

在你的翻譯文件(配置/區域設置/ en.yml):

en: 
    activerecord: 
    errors: 
     models: 
     horse: 
      attributes: 
      name: 
       blank: "Hey, are you the horse with no name?" 
     full_messages: 
     format: "%{message}" 

下面是一個鏈接我找到了這個RoR指南頁面。還有一個列表,列出每個驗證變體需要哪些消息。

的符號和缺省值可能與更高版本的Rails和/或I18N的改變。

0

您需要製作自己的FormBuilder並更改它的翻譯密鑰。

+0

謝謝。我有一種感覺,通過在模型和屬性部分的翻譯文件中添加附加條目,有一種更簡單的方法,但我沒有找到任何明確解釋如何去做的東西。 activerecord: - > errors: - > models:AND activerecord: - > errors: - > attributes: – 2010-03-22 23:42:41

相關問題