2010-08-05 9 views
11

Ho cercato dappertutto una semplice libreria di convalida dell'input per Ruby. Tutto sembra puntare verso ActiveRecord (o simile). Non sto usando Rails, sto usando Sinatra senza un ORM. Qual è l'approccio migliore per convalidare l'input dell'utente (senza legarsi direttamente al livello del modello)? Cose semplici come "lunghezza della stringa", "è numerico" ecc. Preferibilmente con un buon meccanismo per la dichiarazione dei messaggi di errore.Libreria di convalida degli input Ruby semplice

risposta

9

Si potrebbe utilizzare ActiveModel :: Validazioni, da 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

Grazie per il suggerimento e l'esempio. Tuttavia, sto cercando qualcosa che non leghi le convalide ai modelli. –

+0

L'esempio che ho dato funzionerà con qualsiasi classe Ruby che abbia attributi - puoi dare un esempio (codice o pseudocodice) del modo in cui desideri che la validazione funzioni? –

+0

Ho finito per percorrere questa strada. Grazie. –

Problemi correlati