如何覆盖ruby-on-rails中的通用activerecord错误消息?

问题描述:

在我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是正在使用的模型)。我宁愿让它说一些像

“发生错误,以防止您登录到您的帐户”。

如何覆盖我的特定错误信息?

我发现了下面的路径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的改变。

您需要制作自己的FormBuilder并更改它的翻译密钥。

+0

谢谢。我有一种感觉,通过在模型和属性部分的翻译文件中添加附加条目,有一种更简单的方法,但我没有找到任何明确解释如何去做的东西。 activerecord: - > errors: - > models:AND activerecord: - > errors: - > attributes: – 2010-03-22 23:42:41