2010-08-05 2 views
11

Я искал повсюду для простой библиотеки проверки ввода для Ruby. Все, кажется, указывает на ActiveRecord (или аналогичный). Я не использую Rails, я использую Sinatra без ORM. Каков наилучший подход для проверки ввода пользователя (без привязки непосредственно к слою модели)? Простые вещи, такие как «длина строки», «числовые» и т. Д. Предпочтительно с хорошим механизмом для объявления сообщений об ошибках.Simple Ruby Input Validation Library

ответ

9

Вы можете использовать ActiveModel :: Validations из 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

Спасибо за предложение и пример. Тем не менее, я ищу что-то, что не связывает валидацию с моделями. –

+0

Пример, который я дал, будет работать с любым классом Ruby, который имеет атрибуты. Можете ли вы привести пример (код или псевдокод) о том, как вы хотите, чтобы валидация работала? –

+0

Я закончил тем, что пошел по этому маршруту. Благодарю. –

0

Ну я написал один мой сам http://rubygems.org/gems/validates_simple, я надеюсь, что это поможет. Он проверяет хэши, которые являются наиболее распространенной структурой ввода в веб-приложениях.