2012-03-22 11 views
18

Attualmente sto provando a convalidare i campi senza avere un'eredità ActiveRecord::Base.Ruby on Rails: come convalidare un modello senza Active Record?

Il mio modello memorizza i dati su un server cache, quindi non ho bisogno di ActiveRecord.

In ogni caso, mi piacerebbe convalidare i campi del modello come farei se usassi ActiveRecord (ad esempio validates_numericality_of :quantity, :greater_than => 0)?

Come posso farlo?

Grazie mille per il vostro aiuto.

+0

Credo che questa sia la domanda: http://stackoverflow.com/questions/315850/rails-model-without-database –

risposta

27

In Rails 3, Active Model contiene la funzionalità non di database di Active Record.

In sostanza, è necessario includere ActiveModel::Validations, definire i campi come attr_accessor, utilizzare un metodo initialize per inizializzare gli attributi e li rendono non persistevano come modello non viene mantenuto a un database.

In questo modo è possibile avere convalide sul modello senza tabulazione e sul controller come se si stesse utilizzando Active Record. C'è anche un Railscast su questo http://railscasts.com/episodes/219-active-model.

1

Controlla il nostro Veto gem invece se stai cercando una validazione standalone per gli oggetti ruby. È leggero e non ha dipendenze. ActiveModel potrebbe essere eccessivo.

Problemi correlati