我有带有特殊验证的属性,我使用 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_here"). 我不确定这个名称。我试过这样的消息:t(:bad_email)。我在我的 yaml 文件中执行以下操作只是为了尝试一些东西。
activemodel:
errors:
bad_email: "is not a valid email address format."
当我尝试访问我的 Rails 应用程序时,出现以下错误:
ActionView::Template::Error (undefined method `t' for #<Class:0x007fefc1b709e0>)
我也在我的 yaml 文件中尝试了这个:
activemodel:
errors:
user:
bad_email: "is not a valid email address format."
我整天都在研究这个。我能找到的只是替换内置的错误哈希,如空白或空。有没有办法让我拥有自定义错误哈希并在模型中替换它们?在这一点上,我无法让 t 按编码工作。我希望问题在于我如何设置我的 yaml 文件。我已经看到了如何设置它的不同版本。我不确定是否应该将它放在 activemodel 或 activerecord 下。我假设为 activemodel,因为那是我要翻译的自定义消息的位置。
任何帮助,将不胜感激。这是我在启动我的第一个应用程序翻译之前需要弄清楚的最后一块。
更新 2013 年 7 月 29 日下午 7:30 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."