2010-07-30 29 views
2

我有一個簡單的國際:排除屬性名稱在錯誤消息前面加上

attributes: 
    user: 
    login: Login 
errors: 
    template: 
    header: "Errors" 
    body: "" 
    models: 
    user: 
     attributes: 
     login: 
     taken: "The chosen {{attribute}} is already registered" 

所得錯誤消息如下所示:

登錄所選擇的登錄已被註冊

看起來,像Rails自動預先配置屬性名稱的錯誤消息。這迫使我僅以一種方式安排消息 - 以屬性名稱作爲第一個字。

我需要以下錯誤信息:

所選擇的登錄已註冊

如何配置Rails的不前面加上屬性名稱錯誤消息?

+1

我不會將你的問題標記爲重複的,因爲使用國際化會有所不同,但請參閱我以前對以下問題的回答,以查看是否可以幫助你:[從對象驗證消息中刪除字段名稱] (http://stackoverflow.com/questions/2951333/remove-field-name-from-object-validation-message/2951461#2951461) – mikej 2010-07-30 13:44:46

+0

其實,這即將幫助我,爲一個類似的問題,現在不會必須被問到。 – NinjaCat 2010-07-31 16:37:29

回答

12

您需要指定錯誤消息格式才能刪除型號名稱。我相信這只是Rails 3.2.6及更高版本纔有可能的。在Rails指南的I18n一章中的There are more details

en: 
    errors: 
    format: "%{message}" 

默認值是%{attribute} %{message}

+1

這也適用於Rails 4.0.2。 – Deborah 2013-12-08 04:05:19

+0

太棒了!這可以在每個模型基礎上完成嗎? – MegaTux 2015-10-08 18:53:33

+0

@MegaTux我相信是的。但我不確定。 – Mohamad 2015-10-14 19:39:15