Proyecto

General

Perfil

Acciones

Errores #3336

cerrada

Correcciones en "left outer join" para indicadores y fuentes de verificación

Añadido por Santiago Ramos hace más de 6 años. Actualizado hace más de 6 años.

Estado:
Resuelta
Prioridad:
Normal
Asignado a:
Categoría:
Desarrollo
Versión prevista:
Fecha de inicio:
2018-05-07
Fecha fin:
% Realizado:

100%

Tiempo estimado:
Versión:

Descripción

Hemos traducido de forma erronea todos los "includes" por "joins" pero esto no siempre es así:

  • En la ficha del proyecto, el número de indicadores es siempre 0
  • En el resumen ejecutivo sucede lo mismo, siempre hay 0 indicadores a pesar de existir más.

Esto es debido a que anteriormente teníamos:

    ind_total = Indicador.count(:include => ["objetivo_especifico", "resultado"], :conditions => ["objetivo_especifico.proyecto_id = ? OR resultado.proyecto_id = ?", @proyecto.id, @proyecto.id])

y lo hemos traducido a la nueva versión de active record de la siguiente forma:

    ind_total  = Indicador.joins(:objetivo_especifico, :resultado).
                                      where(["objetivo_especifico.proyecto_id = ? OR resultado.proyecto_id = ?", @proyecto.id, @proyecto.id]).
                                      count

pero esto devuelve siempre 0 y deberíamos hacerlo así:

    ind_total  = Indicador.joins("left join objetivo_especifico on objetivo_especifico.id = indicador.objetivo_especifico_id").
                                      joins("left join resultado on resultado.id = indicador.resultado_id").
                                      where("objetivo_especifico.proyecto_id = ? OR resultado.proyecto_id = ?", @proyecto.id,@proyecto.id).
                                      count

Es decir, hasta que no usemos rails5 (donde sí existen los left join) tenemos que definirlos explicitamente.

Acciones

Exportar a: Atom PDF