简单的Ruby输入验证库

时间:2010-08-05 15:44:08

标签: ruby validation input sinatra

我一直在寻找一个简单的Ruby输入验证库。一切似乎都指向ActiveRecord(或类似的)。我没有使用Rails,我在没有ORM的情况下使用Sinatra。验证用户输入的最佳方法是什么(不直接与模型层绑定)?简单的事情,如“字符串长度”,“是数字”等。最好有一个很好的机制来声明错误消息。

3 个答案:

答案 0 :(得分:9)

您可以使用Rails 3 RC中的ActiveModel :: Validations:

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

答案 1 :(得分:0)

我写了一个我的自我http://rubygems.org/gems/validates_simple,我希望它会有所帮助。它验证哈希值,这是Web应用程序中最常见的输入结构。

答案 2 :(得分:0)

我也写了一篇,因为我对现有的解决方案感到沮丧。您可以尝试https://github.com/Goltergaul/definition,它可以进行类似于干燥验证的各种验证,但不会造成混淆