Errores #2476
Error 500 al cambiar de estado un proyecto
0%
Descripción
Al hacer el cambio de estado de un proyecto se produce un error 500:
Processing by EstadoController#modificar_estado as HTML Parameters: {"utf8"=>"?", "authenticity_token"=>"4U6hnleUzl0IFDA4efuR3HlQLJbPUbmLrRht7+RrT/8=", "definicion_estado"=>{"id"=>"7"}, "estado"=>{"observacion"=>"Prueba de cambio de estado"}, "seccion"=>"proyectos", "proyecto_id"=>"753", "menu"=>"configuracion"} Completed 500 Internal Server Error in 25ms NoMethodError (undefined method `activo' for nil:NilClass): app/models/estado.rb:54:in `block in verificar_cierre_proyecto_tareas' app/models/estado.rb:54:in `verificar_cierre_proyecto_tareas' app/controllers/estado_controller.rb:69:in `modificar_estado'
Histórico
#1 Actualizado por Santiago Ramos hace alrededor de 8 años
El método en cuestión del modelo de "estado" es:
def verificar_cierre_proyecto_tareas if self.estado_actual and self.definicion_estado.cerrado and proyecto.tarea.find{|t| t.estado_tarea.activo} errors.add("proyecto", _("No se puede cambiar el proyecto a un estado de tipo cerrado hasta haber cerrado todas las tareas del proyecto.")) end end
Sería bueno una forma un poco más eficiente de encontrar elementos que un "find" recorriendo todas las tareas, pero para solucionar ese error bastaría con evitar "activo" sobre nil. Ahora...
... en el modelo de tareas no se hace validación de que exista estado_tarea asociado. Eso significa que si un proyecto tiene tareas que no tienen estado puede cerrarse, o no debería cerrarse?.
#2 Actualizado por Santiago Ramos hace alrededor de 8 años
Hago la corrección para evitar errores impidiendo que se puede cambiar de estado con tareas sin estado ( r7491 ) y dejo que se cierre el ticket desde Semilla si este es el comportamiento que debería tener (aunque asumo que así es).
#3 Actualizado por Jaime Ortiz hace alrededor de 8 años
Es correcto el comportamiento que planteas. Y es cierto que se deberia comprobar que las tareas tienen estado. De ahi arranca el problema.
Gracias Santi.
#4 Actualizado por Jaime Ortiz hace alrededor de 8 años
- Estado cambiado Nueva por Resuelta