[Ror-es] Implementando transacciones a nivel de aplicación
Fernando Blat
ferblape at gmail.com
Sun Jan 28 00:53:04 GMT 2007
Os agradezco la respuesta, pero me temo que me he expresado mal: si os
fijáis en el asunto de mi e-mail he puesto "a nivel de aplicación",
queriendo decir realizar una transacción en el controlador pero no
sobre el modelo de datos, sino a nivel de aplicación.
Más concretamente lo que me interesa es un tema de que el borrado y la
generación de la misma caché se realice de forma atómica.
Así que no se trataba de las transacciones de AR, no.
Pero gracias :)
On 1/27/07, javier ramirez <jramirez at aspgems.com> wrote:
>
>
>
> Las transacciones, a pesar de tener que declararse Modelo.transaction
> son propias de la conexión, por lo que afectan a todas las tablas de
> esa conexión...
> En realidad no tienes porqué declarar las transactions a nivel de modelo.
> Declararlas a partir del modelo queda muy claro cuando estás trabajando sólo
> con un modelo, pero transaction es un método de ActiveRecord::Base (del que
> extienden los modelos), así que puedes utilizar
>
> ActiveRecord::Base.transaction do
> acciones
> end
>
> A mí me resulta mucho menos confuso usar esto cuando hay varios modelos en
> juego en la transaction.
>
>
> y otra cosa, en el rescue es recomendable hacer un
> reload de los modelos que hayas podido modificar, ya que parece que a
> pesar de que no cambián en la base de datos, los datos de Rails no
> parecen funcionar igual...
> Esto también puedes conseguirlo automáticamente, aunque en la 1.2 lo han
> "deprecado". Para hacer eso la sintáxis es
> ActiveRecord::Base.transaction(objeto1,objeto2,objeto3...) do
> acciones
> end
>
> En este caso al hacer rollback se devuelven los objetos especificados a su
> estado anterior, con el inconveniente de que toda su información adicional
> (por ejemplo, el resultado de las validaciones) se pierde también, porque
> hace rollback del estado completo del objeto. Por ese motivo lo han sacado
> de la 1.2 aunque si es necesario sigue disponible como plugin.
>
>
> Como nota adicional, esto funciona solamente para una sola conexión. Si mi
> transacción usa modelos de diferentes conexiones, AR no es capaz de
> trazarlo.
>
>
> Saludos,
>
> javier ramírez
>
>
> --------
> Estamos de estreno... si necesitas llevar el control de tus gastos visita
> http://www.gastosgem.com !!Es gratis!!
>
> _______________________________________________
> Ror-es mailing list
> Ror-es at lists.simplelogica.net
> http://lists.simplelogica.net/mailman/listinfo/ror-es
>
>
>
--
Fernando Blat
blog > http://www.inwebwetrust.net
More information about the Ror-es
mailing list