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