Acciones
Errores #3336
cerradaCorrecciones en "left outer join" para indicadores y fuentes de verificación
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