J'essaie d'écrire un validateur personnalisé qui vérifiera le nombre de mots entrés dans un champ de texte.Écrire un validateur personnalisé dans Rails 3
je tentais de suivre l'exemple dans Railscasts épisode 211-http://railscasts.com/episodes/211-validations-in-rails-3
Je fait une /lib/word_limit_validator.rb de fichier et copiés dans le même code du tutoriel. Je sais que ce code ne compte pas le nombre de mots, j'essaie juste de l'utiliser car je sais comment il est censé se comporter.
class WordLimitValidator < ActiveModel::EachValidator
def validate_each(object, attribute, value)
unless value =~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
object.errors[attribute] << (options[:message] || "is not formatted properly")
end
end
end
Voici la ligne je dans ma validation:
validates :body, :presence => true,
:word_limit => true
Lorsque j'ai essayé de charger la forme que je suis l'erreur suivante:
Unknown validator: 'word_limit'
Comment puis-je obtenir des rails à reconnaître mon validateur?
spécifications du système: Mac OS 10.6.7 Rails 3.0.4 rubis 1.9.2p136
J'ai utilisé la deuxième option et cela a fonctionné! – Cyrus
Ouais, j'aurais dû dire - la deuxième option est OMI la meilleure option. Je ne suis pas sûr de ce qu'est la «meilleure pratique» de Rails 3. – muffinista