2010/4/7 Porta <[email protected]>

> Gente.
> Aca les vengo con una cuestion que no logro resolver, a ver que se les
> ocurre.
> Tengo un modelo (Nota) que tiene atributos titulo y cuerpo
> Esos articulos  se envian a distintos Proveedores (otro modelo).
>

entre Nota y Proveedor, ¿no tenés otra entidad? (un join model, sino tenés
un has_and_belongs_to_many)


> Cada Proveedor tiene distintos requerimientos en cuanto al contenido de las
> Notas.
> Cada uno de esos Requerimientos se puede expresar con pequenios fragmentos
> de codigo (en general tienen que ver con buscar ciertas palabras en el
> cuerpo de la Nota, la longitud del titulo y cosas por el estilo)
> Como los requerimientos son atomicos y van cambiando entre Proveedores,
> pense en armar un modelo Requerimiento, y mandarlos a la base.
>
> Entonces, cuando proceso una Nota para enviar a un Proveedor, necesito
> levantar la lista de Requerimientos que debo aplicar sobre la Nota, para
> saber si se puede enviar o no.
> Dicho en simple, como hago para guardar el codigo de cada Requerimiento en
> el modelo y "aplicarlo" a una Nota para saber cumple o no los
> Requerimientos?
>

¿necesitás tal flexibilidad realmente? Si sólo tenés un conjunto acotado de
"tipos" de Requerimiento lo podés hacer con STI (Single Table Inheritance)

class TienePalabras < Requerimiento; end

si esta forma no te sirve, siempre podés tener una columna TEXT que contenga
código Ruby y lo evalúes (pasandole la instancia de nota y proveedor se me
ocurre)...

pero me da la impresión de que es más engorroso para el usuario (¡necesita
saber Ruby!) y potencialmente peligroso; además si en realidad existen dos
"tipos" de requerimientos pobre usuario le hacés retipear el mismo código
una y otra vez...

nachokb
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a