Rescate de rieles: registro no encontrado al pasar la variable del controlador al trabajador
-
27-10-2019 - |
Pregunta
Tengo un controlador muy simple:
def create
@poem = Poem.new(params[:poem])
@poem.prose = @poem.content
@poem.save
Resque.enqueue(PoemWork, @poem.id)
....
y un trabajador muy simple:
class PoemWork
@queue = :poem_queue
def self.perform(poem_id)
@poem = Poem.find(poem_id)
txt = @poem.content
#do stuff here
@poem.save
end
end
Y sigo recibiendo "No se pudo encontrar el poema con id= 53" o algo.así ...
Intenté pasar solo una cadena, solo un entero, etc. pero también termina con ActiveRecord :: RecordNotFound
¿Qué puede estar mal?
Solución
Entonces, el problema fue que el trabajador comienza antes de que se cree realmente el objeto.
Tuve que instalar la gema que reinicia los trabajos fallidos.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow