我有一些带有特殊验证的属性,其中我使用message子句仅为该验证显示一条特殊消息。以下是一个例子:
验证:电子邮件,状态:true,长度:{最大值:60},
格式:{with:valid_email_regex,消息:“不是有效的电子邮件地址格式。”},
唯一性:{区分大小写:false}
我想在这里翻译这个信息,但我不知道怎么做
我看到过这样的例子:message:t(“此处的某些值”)。我不确定名称。我试过这样的消息:t(:bad_email)。我在yaml文件中执行以下操作只是为了尝试一些东西
activemodel:
错误:
错误的电子邮件:“不是有效的电子邮件地址格式。”
当我尝试访问Rails应用程序时,出现以下错误:
ActionView::Template::Error(类:0x007fefc1b709e0>;的未定义方法“t”)
我还在我的yaml文件中尝试了这一点:
activemodel:
错误:
用户:
错误的电子邮件:“不是有效的电子邮件地址格式。”
我一整天都在断断续续地研究这个问题。我所能找到的就是替换内置的错误哈希,比如blank或empty。有没有一种方法可以让我自定义错误哈希并在模型中替换它们?在这一点上,我无法让t按照编码的方式工作。我希望问题是如何设置yaml文件。我看到了不同版本的设置方法。我不确定是否应该将其置于activemodel或activerecord下。我假设activemodel,因为我要翻译的自定义消息就在这里
任何帮助都将不胜感激。这是我在启动应用程序的第一个翻译之前需要解决的最后一个问题
更新日期:CDT时间2013年7月29日下午7:30
bgates为我提供了一个非常好的开始,让我了解如何设置模型文件以接收YAML文件中的自定义消息。然而,为了找到自定义消息,我不得不在yaml文件中执行以下设置
activerecord:
错误:
模型:
用户:
属性:
生物:
无链接:“不能包含电子邮件地址或网站链接(URL)。”
电邮:
错误的电子邮件:“不是有效的电子邮件地址格式。”
用户名:
错误的用户名:“只能包含数字和字母。没有特殊字符或空格。”
请为消息使用符号:
验证:电子邮件,状态:true,长度:{最大值:60},
格式:{with:valid_email_regex,message::bad_email},
唯一性:{区分大小写:false}
然后在yaml文件中
[lang]:
activerecord:
错误:
信息:
糟糕的电子邮件:“就是不对”
如果有特定于此模型的转换,它将覆盖上面的常规转换:
[lang]:
activerecord:
错误:
模型:
模型名称:#或名称空间/模型名称
属性:
电邮:
错误的电子邮件:“无效电子邮件的型号特定消息”
如果您编写自定义验证,add\u error(:email,:bad\u email)将执行上述查找,但errors[:email]<<;:错误的电子邮件将不会出现