2016-08-01 26 views
0

Ich verwende Rails 4.2.7. Ich habe diese Gültigkeitsregel für mein ModellIn RoR, wie kann ich eine Validierungsfehlermeldung anpassen, die auf eine höhere Nullenziffer eingestellt ist?

class MyObjectTime < ActiveRecord::Base 

    validates :time_in_ms, numericality: { greater_than: 0 } 

Ich möchte eine benutzerdefinierte Fehlermeldung schreiben, also in meiner config/locales/en.yml Datei enthalten I

en: 
    activerecord: 
    attributes: 
     my_object: 
     name: "Name" 
     my_object_time: 
     time_in_ms: "Time" 
    errors: 
     models: 
     my_object_time: 
      attributes: 
      time_in_ms: 
       not_a_number: "This field must be a number greater than zero." 
       blank: "This field must be a number greater than zero." 

Aber wenn mein Objekt nicht zu Überprüfe, diese benutzerdefinierte Fehlermeldung ist nicht in meinem @ my_object_time.errors.full_messages-Array enthalten. Stattdessen was ist enthalten

Must be greater than 0 

Was ist die richtige Regel in meiner Konfigurationsdatei zu schreiben, damit ich diese Fehlermeldung anpassen kann?

+0

Mögliche Duplikat [Vollständig benutzerdefinierte Validierung Fehlermeldung mit Rails] (http://stackoverflow.com/questions/808547/ hinzufügen Full-Custom-Validation-Fehlermeldung-mit-Schienen – danilopopeye

Antwort

1

Sie können die Nachricht direkt im Modell anpassen.

class MyObjectTime < ActiveRecord::Base 

    validates :time_in_ms, numericality: { greater_than: 0 }, message: 'my customized message.' 

end 

oder in Ihrem en.yml Datei benötigen Sie Nachricht für greater_than:

en: 
    activerecord: 
    attributes: 
     my_object: 
     name: "Name" 
     my_object_time: 
     time_in_ms: "Time" 
    errors: 
     models: 
     my_object_time: 
      attributes: 
      time_in_ms: 
       not_a_number: "This field must be a number greater than zero." 
       blank: "This field must be a number greater than zero." 
       greater_than: "my custom message for greater than"