Je cherche partout dans la place pour une simple bibliothèque de validation d'entrée pour Ruby. Tout semble pointer vers Aciverecord (ou similaire). Je n'utilise pas de rails, j'utilise Sinatra sans ormission. Quelle est la meilleure approche pour valider la saisie de l'utilisateur (sans attacher directement à la couche modèle)? Des choses simples comme "la longueur de la chaîne", "est numérique", etc. De préférence avec un joli mécanisme pour déclarer des messages d'erreur. P>
3 Réponses :
Vous pouvez utiliser Activemodel :: Validations, à partir de Rails 3 RC:
require 'active_model' # this appears to be a bug in ActiveModel - it uses this, but does not require it require 'active_support/core_ext/hash' class Model include ActiveModel::Validations attr_accessor :name validates_presence_of :name end m = model.new puts m.valid? # false m.name = "John Doe" puts m.valid? # true
Merci pour la suggestion et l'exemple. Cependant, je cherche quelque chose qui ne lie pas les validations aux modèles.
L'exemple que j'ai donné travaillera avec une classe de rubis qui a des attributs - pouvez-vous donner un exemple (code ou pseudocode) de la manière dont vous souhaitez que la validation fonctionne?
J'ai fini par aller dans cette voie. Merci.
Eh bien, j'ai écrit un mon auto http://rubygems.org/gems/validates_simple , j'espère ça aidera. Il valide les hachages qui constituent la structure la plus courante de l'entrée dans les applications Web. p>
J'ai aussi écrit un parce que j'étais frustré par les solutions existantes. Vous pouvez essayer https://github.com/goltergaul/Definition Il peut faire toutes sortes de validations similaires à la validation à sec mais moins déroutant p>