Extraño problema con ActiveRecord#find

Hola gente, estoy trabajando con Backgroundrb para manejar algunas
tareas
que toman algo de tiempo fuera del request, concretamente necesito
enviar
alertas a varios usuarios depende del tipo de registro encontrado, bueno
sucede que el correo solo se envia de vez en cuando y no trabaja como
deberia ser, bien esto sucede a que AR#find(:first) aveces me devuelve
nil
cuando deberia devolverme el registro encontrado ya que la consulta
generada
es correcta, me di cuenta de esto despues de perder todo un dia
depurando la
aplicación, colo un enlace hacia el codigo para que me puedan dar una
ayuda:

http://pastie.caboo.se/201986

Muchas gracias de antemano

PD: Si cambio find(:first) por un find_by_sql todo va bien, pero siempre
me
interesa saber el porque :wink:

etoo pues

alerts = SearchAlert.find(:all,
:conditions => [“frequency = 2 AND basic_condition = ?”,
basic_condition])
logger.info(“Alerts: #{alerts.size}”)
alerts.each do |alert|
property = Property.find(:first,
:conditions => ["id = #{options[:id]} AND " +
alert.complete_condition]
)

tienes eso

en la parte de property no iria

property = Property.find(:first, :conditions => [“id=#{options[:id]} AND
" +
basic_condition = ?”, alert.complete_condition]

la verdad no me hagas mucho caso pues no se bien lo que estas haciendo
pero

se me hace raro ver un AND + un valor, de que va esa parte ??

y si pones find(:all).first ?? xDD broma broma, luego derepente que
parece
que active record hace cosas raras y termina siendo una

tonteria que hacemos =P me a pasado en un par de ocaciones esperemos que
sea
eso y no un bug de ar.

pues un saludo y suerte.

Ing. Omar S. Jimenez Becerra

El día 23/05/08, Ruben. D. [email protected] escribió:

Hola Omar, gracias por la intención de ayuda, pero por ahi no iba el
asunto,
felizmente me lograron ayudaron en la lista backgroundrb-devel:

2008/5/23 Benjamin H. Bryant [email protected]:
Ruben,
I had the same (very frustrating) problem. Im not entirely sure what
it’s
root is, but it seems to be due to mysql not having completely finished
writing/updating before your worker attempts to find the record. Try
adding
a sleep(1) (or potentially even less time) in your worker method before
the
find. That worked for me.

Ben

Saludos.

2008/5/23 Omar J. [email protected]: