2010-08-05 5 views
11

J'ai cherché partout une bibliothèque de validation d'entrée simple pour Ruby. Tout semble pointer vers ActiveRecord (ou similaire). Je n'utilise pas Rails, j'utilise Sinatra sans ORM. Quelle est la meilleure approche pour valider la saisie de l'utilisateur (sans la lier directement à la couche du modèle)? Des choses simples comme "longueur de chaîne", "est numérique" etc. De préférence avec un bon mécanisme pour déclarer les messages d'erreur.Bibliothèque simple de validation d'entrée Ruby

Répondre

9

Vous pouvez utiliser ActiveModel :: Validations, 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 
+0

Merci pour la suggestion et l'exemple. Cependant, je cherche quelque chose qui ne lie pas les validations aux modèles. –

+0

L'exemple que j'ai donné fonctionnera avec n'importe quelle classe Ruby qui a des attributs - pouvez-vous donner un exemple (code ou pseudo-code) de la façon dont vous aimeriez que la validation fonctionne? –

+0

J'ai fini par suivre cette route. Merci. –