我有一些带有特殊验证的属性,在这些属性中,我使用message子句来显示一条专门用于验证的特殊消息.以下是一个例子:
validates :email, presence: true, length: { maximum: 60 },
format: { with: valid_email_regex, message: "is not a valid email address format." },
uniqueness: { case_sensitive: false }
我想在这里翻译这个信息,但我不知道怎么做.
我见过这样的例子:message:t("这里的some_value_").我不确定名称.我试过这样的消息:t(:bad_email).我在yaml文件中做了以下操作只是为了try 一些东西.
activemodel:
errors:
bad_email: "is not a valid email address format."
当我试图访问Rails应用程序时,出现以下错误:
ActionView::Template::Error (undefined method `t' for #<Class:0x007fefc1b709e0>)
我在yaml文件中也try 过:
activemodel:
errors:
user:
bad_email: "is not a valid email address format."
我一整天都在断断续续地研究这个问题.我所能找到的就是替换内置的错误哈希,比如blank或empty.有没有办法让我自定义错误哈希并在模型中替换它们?在这一点上,我无法让t按照编码的方式工作.我希望问题在于如何设置yaml文件.我看到了不同版本的设置方法.我不确定我应该把它放在activemodel还是activerecord下.我假设了activemodel,因为我要翻译的自定义消息就是在这里.
任何帮助都将不胜感激.这是我在启动应用程序的第一个翻译之前需要解决的最后一个问题.
UPDATE 7/29/2013 7:30 pm CDT
bgates给了我一个很好的开始,让我知道如何设置我的模型文件来接收YAML文件中的自定义消息.然而,为了找到自定义消息,我最终不得不在yaml文件中执行以下设置.
activerecord:
errors:
models:
user:
attributes:
bio:
no_links: "cannot contain email addresses or website links (URLs)."
email:
bad_email: "is not a valid email address format."
username:
bad_username: "can only contain numbers and letters. No special characters or spaces."