11
votes

Bibliothèque de validation d'entrée de rubis simple

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.


0 commentaires

3 Réponses :


9
votes

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


3 commentaires

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.



0
votes

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.


0 commentaires

0
votes

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


0 commentaires