Re: Mapear el modelo y el resultado del Query

La clase report esta en los modelos. Pero no tiene una tabla que le
corresponda.


pero esa clase report es una vista o un modelo o un controlador?

saludos

On Tue, Apr 22, 2008 at 11:35 AM, Ruddy V. [email protected] wrote:


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]

2008/4/22 Ruddy V. [email protected]:

nos podrias mostrar la estructura de tus modelos?

por ejemplo para acceder a los campos de otra tabla generalemente se ase
asi
suponiendo que User has many Posts y posts Belongs to User

@me = User.(1)

@me.posts.first.title
@me.posts.first.body

ó

@me.posts.last.body

o se recorre

@me.posts.each{ |o|

o.body
o.title

}

o bien puedes hacer un find_by_sql(“aqui va tu sql en duro”) y ahi
puedes
hacer los selects de los campos que tu quieras etc…

saludos