2014-11-01 33 views
0

對於測試的原因我想:誤差LN18翻譯

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>): 

什麼我錯了嗎?我不明白爲什麼我的代碼現在拋出一個錯誤!感謝

+1

您的更改使YAML文件中的數據無效。你不能在'sicherheit:'「E-mail地址」中刪除「電子郵件地址」或「包含」。 – Surya 2014-11-01 09:52:30

+0

可以請你回答一個答案,以便我可以標記爲正確的?謝謝 – 2014-11-01 10:02:54

回答

3

你的變化:

fehler_ausgabe: 
    activerecord: 
    attributes: 
     diagnosis: 
     sicherheit: "E-mail addresse" 
      inclusion: "muss zugeorndet werden" 

讓您的YAML文件無效。如果您傾向於擁有sicherheit: "E-mail addresse",則不能有inclusion: "muss zugeorndet werden"。刪除inclusion: "muss zugeorndet werden""E-mail addresse"以使您的安排工作。

但是,您可以checkout this answer在您的YAML中正確設置inclusion驗證。