Proyecto

General

Perfil

Errores #3336

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

Añadido por Santiago Ramos hace casi 6 años. Actualizado hace casi 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%


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.

Histórico

#1 Actualizado por Santiago Ramos hace casi 6 años

  • Estado cambiado Nueva por Resuelta
  • % Realizado cambiado 0 por 100

Se crean dos métodos nuevos en el modelo de proyecto (indicadores y fuentes_verificacion) y se referencian todos los joins de estos modelos sobre resultado y objetivo_especifico a éstos métodos.

#2 Actualizado por Santiago Ramos hace casi 6 años

  • Asunto cambiado Correcciones en "left outer join" por Correcciones en "left outer join" para indicadores y fuentes de verificación

Exportar a: Atom PDF

Financiado por:

Desarrollado por:
Software libre forjado en: