出于测试原因,我试过:
I18n.locale = "fehler_ausgabe"
puts I18n.translate "activerecord.attributes.diagnosis.sicherheit"
哪些方法正常运行并为此yaml文件返回E-mail addresse
:
fehler_ausgabe:
activerecord:
attributes:
diagnosis:
sicherheit: "E-mail addresse"
接下来,我尝试测试我的模型中定义的错误:
validates :sicherheit, inclusion: { in: ["U","V"]}, unless: :skip_fehler
我改变了我的yaml文件:
fehler_ausgabe:
activerecord:
attributes:
diagnosis:
sicherheit: "E-mail addresse"
inclusion: "muss zugeorndet werden"
我再试一次:
puts I18n.translate "activerecord.attributes.diagnosis.sicherheit"
但现在不知何故得到这个错误:
I18n::InvalidLocaleData (can not load translations from C:/Sites/heroku
2/config/locales/fehler_ausgabe.yml: #<Psych::SyntaxError: (C:/Sites/heroku2/config/locales/fehler_ausgabe.yml):
did not find expected key while parsin
g a block mapping at line 5 column 9>):
我错了什么?我不明白为什么我的代码现在抛出错误!致谢
答案 0 :(得分:3)
你的改变:
fehler_ausgabe:
activerecord:
attributes:
diagnosis:
sicherheit: "E-mail addresse"
inclusion: "muss zugeorndet werden"
使您的YAML文件无效。如果您倾向于inclusion: "muss zugeorndet werden"
,则无法sicherheit: "E-mail addresse"
。删除inclusion: "muss zugeorndet werden"
或"E-mail addresse"
以使您的安排有效。
但是,您可以在YAML中checkout this answer正确设置inclusion
验证。