2012-03-22 21 views
18

Actualmente estoy tratando de validar campos sin tener una herencia de ActiveRecord::Base.Ruby on Rails: ¿cómo validar un modelo sin registro activo?

Mi modelo almacena los datos en un servidor de caché, por lo que no necesito ActiveRecord.

De todos modos, me gustaría validar los campos del modelo como lo haría si estuviera usando ActiveRecord (por ejemplo, validates_numericality_of :quantity, :greater_than => 0)?

¿Cómo puedo hacer eso?

Muchas gracias por su ayuda.

+0

Creo que esta es la pregunta: http://stackoverflow.com/questions/315850/rails-model-without-database –

Respuesta

27

En Rails 3, el Modelo activo contiene la funcionalidad sin base de datos de Active Record.

Básicamente, es necesario incluir ActiveModel::Validations, definir sus campos como attr_accessor, utilizar un método initialize para inicializar los atributos y hacerlos no persistieron como su modelo no se conserva a una base de datos.

De esta forma puede hacer que las validaciones en el modelo sin tableta y su controlador sean las mismas que si estuviera utilizando Active Record. También hay un Railscast en este http://railscasts.com/episodes/219-active-model.

1

Eche un vistazo a nuestra Veto gem en su lugar si está buscando una validación independiente para los objetos ruby. Es liviano y no tiene dependencias. ActiveModel podría ser excesivo.