Si tengo los belongs_to y los has_many pero la BD es heredada, no
podemos correr la migración.
Al hacer esta consutla con el :conditions va a buscar time_id y no
existe
@report = Employee.find(:all,
:conditions => [‘EMPNAME LIKE ?’, ‘%vargas’],
:include => [:timeact]
)
Da este error:
Mysql::Error: #42000Not unique table/alias: ‘EMPLOYEE’: SELECT
EMPLOYEE
.EMPLISTID
AS t0_r0, EMPLOYEE
.EMPNAME
AS t0_r1,
EMPLOYEE
.SSN
AS t0_r2, EMPLOYEE
.TYPE
AS t0_r3,
EMPLOYEE
.CUSJOB
AS t0_r4, EMPLOYEE
.SPACEUSED
AS t0_r5,
EMPLOYEE
.ACTIVE
AS t0_r6, EMPLOYEE
.RELEASEDDATE
AS t0_r7,
EMPLOYEE
.LOGINNAME
AS t0_r8, TIMEACT
.TIMEACTDATE
AS t1_r0,
TIMEACT
.TIMEACTJOB
AS t1_r1, TIMEACT
.TIMEACTEMP
AS t1_r2,
TIMEACT
.TIMEACTTASK
AS t1_r3, TIMEACT
.TIMEACTTYPE
AS t1_r4,
TIMEACT
.TIMEACTDURATION
AS t1_r5, TIMEACT
.TIMEACTNOTE
AS t1_r6
FROM EMPLOYEE
LEFT OUTER JOIN TIMEACT
ON
TIMEACT
.TIMEACTDATE,TIMEACTJOB,TIMEACTEMP,TIMEAC TTASK,TIMEACTTYPE =
EMPLOYEE
.timeact_id WHERE (EMPNAME LIKE ‘%vargas’)
Me parece que es por no tener el timeact_id, por no correr la migración.
Entonces con este otro query:
@report = Employee.find(:all,
:conditions => [‘EMPNAME LIKE ?’, ‘%vargas’],
:joins => “left join TIMEACT ON (EMPLOYEE.EMPLISTID =
TIMEACT.TIMEACTEMP)”
)
Si obtengo todos los Employee y los datos de timeact, pero como la
consulta la hago con el modelo Employee, ruby me deja los datos del
empleado en employee pero no se donde quedan los datos del timeact.
O existe alguna forma para hacer una consulta de dos o mas tablas y que
pueda ver todos los datos retornados.
Se me ha ocurrido hacer dos o mas consultas por separado e ir
almacenando en una lista, pero no estoy seguro.
gracias.
ruddyvar [email protected]