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]