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

> 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)
>

Si, tengo otra entidad, nomas me parecio que no era relevante para la
descripcion del problema.


>
>
>> 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)...
>
>
Esto es lo que estaba pensando, pero no tengo en claro como implementarlo.
Vengo de perl y en ese caso hubiera tirado un eval a lo macho sin pensarlo
siquiera. Pero (imagino que, es una idea mia sin fundamento) en ruby podria
haber alguna herramienta mas para hacerlo un poco mas prolijo.


> 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...
>
>
En este caso, el usuario soy yo. Lo que quiero evitar es que cada
requerimiento nuevo que aparece, tener que tocar codigo en la aplicacion.
Ademas, hay un segundo nivel de usuario que va a tildar checkboxes para
determinar que requerimientos tiene una Nota determinada para mandar a un
Proveedor X. Es por eso que pense en tirar los Requerimientos en una tabla.
De modo que cuando el usuario manda a procesar una Nota, se agarran todos
los Requerimientos tildados, y se corre el codigo de cada requerimiento
sobre la Nota elegida.

Si esto se hace con un eval, entonces lo saco con fritas. Se que en ruby hay
Procs, lambdas y otras yerbas. Sospecho que se pueden usar para resolver el
tema que tengo, pero honestamente no tengo en claro ni que son, ni como se
usan ni si me sirven para este caso en particular.



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

Responder a