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
11
A
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
Eh bien je l'ai écrit moi-même un http://rubygems.org/gems/validates_simple, j'espère que cela aidera. Il valide les hachages qui sont la structure la plus courante de l'entrée dans les applications web.
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é 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? –
J'ai fini par suivre cette route. Merci. –