2009-08-24 100 views
3

如果我有以下驗證:不包括在驗證錯誤消息字段名

validates_inclusion_of :dob, :in => Date.new(1900)..Time.now.years_ago(18).to_date, :message => "You must be 18 or older to register" 

,顯示了網站上的實際消息是:

「杜伯您必須年滿18歲才能註冊「

有什麼辦法不在郵件的開頭添加列名?

謝謝

湯姆

回答

3

是。我使用custom-err-msg plugin。啓動和運行起來非常簡單,只需閱讀README即可。

+0

no magic built in:dont_include_field_name flag or anything,呃? :)感謝您的插件建議 - 我會檢查出來。 +1 – cakeforcerberus 2009-08-24 02:19:24

+0

非常容易設置和完美運作。再次感謝! – cakeforcerberus 2009-08-27 14:54:01

0

充分披露:我開發了寶石。

我覺得現有的解決方案是黑客,我開發這個寶石,以避免這種黑客攻擊。

https://github.com/lulalala/adequate_errors

安裝寶石後,設置像這樣在您的語言環境YAML文件中的錯誤消息:

en: 
    activemodel 
    adequate_errors: 
     models: 
     user: 
      attributes: 
      dob: 
       inclusion: "You must be 18 or older to register" 

然後訪問model.errors.adequate.messages將有沒有屬性前綴的消息。