簡體   English   中英

如何在ruby-on-rails中覆蓋通用的activerecord錯誤消息?

[英]How do I override generic activerecord error messages in ruby-on-rails?

在我的en.yml翻譯文件中,我有:

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

在登錄我的應用程序期間發生activerecord / validation錯誤時,錯誤消息:

“1錯誤禁止此用戶會話被保存”

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

“發生了一次錯誤,導致您無法登錄自己的帳戶”。

如何使用我的特定錯誤消息覆蓋常規錯誤消息?

我發現路由Rails(2.3.8)跟隨轉換錯誤消息(使用i18n 0.6.0):另外,不要忘記更改full_messages格式,使其與您的自定義消息相對應。

這是模型“Horse”的示例,它驗證屬性“name”(不能為空)。

在你的模型中(app / models / horse.rb):

validates_presence_of :name

在您的翻譯文件(config / locales / 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的更高版本而改變。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM