rails 3 Validatoren & i18n

8

Ich habe gerade damit begonnen, die benutzerdefinierten Validatoren in Rails 3 zu verwenden. Ich bin mir jedoch nicht sicher, ob ich meine vorhandenen iloco-Dateien für activerecord verwenden kann. es scheint, dass ich tun muss

%Vor%

statt vorher, wenn ich es einfach gemacht hätte

%Vor%

Gibt es eine Abkürzung, die ich in meinem ActiveModel verwenden kann: Validator / EachValidator-Klasse, um dasselbe zu erreichen?

    
brewster 26.02.2011, 08:17
quelle

2 Antworten

16

Ich hatte das gleiche Problem und fand schließlich die Antwort ...

%Vor%     
Andreas 03.03.2011, 13:26
quelle
2

Wenn Sie diese Frage (die zu dem Zeitpunkt dieses Schreibens ein paar Jahre alt ist) am Ende lesen, können Sie folgendes für Rails 4 versuchen:

In Ihrem Modell:
class Document < ActiveRecord::Base validates :date, date_in_present: {message: :custom_message} end

In Ihrem Prüfer:
class DateInPresentValidator < ActiveModel::EachValidator def validate_each(object, attribute, value) if(value.to_date >= Date.today) true else object.errors[attribute] << options[:message] end end end

In Ihrer i18n-XML-Datei:
en: activerecord: errors: models: document: attributes: date: custom_message: Date is not in present

Ich habe das nicht gründlich getestet.

Sie können im Custom Validator auch eine Fallback-Nachricht angeben:
object.errors[attribute] << (options[:message] || "Display this message if message is not in options")

    
Charlie Vieillard 01.05.2014 09:02
quelle