Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Ruby (http://www.forosdelweb.com/f105/)
-   -   Hacer un Join desde Ruby (http://www.forosdelweb.com/f105/hacer-join-desde-ruby-574715/)

ruddyvar 10/04/2008 15:17

Hacer un Join desde Ruby
 
Buenas compañeros, son nuevo en el mundo de RoR y tengo un proyecto.
En el cual dicho sea de paso me estan presionando para ver resultados.

Para iniciar la BD es heredado de otro sistema y es compartida con otras aplicaciones por lo que no podemos cambiarla. Esto lo digo porque como van a ver, no cumple con las standares que establece ruby.

Ok, tengo este sql.

SELECT T.TASKEMP, T.TASKID, A.TIMEACTTYPE, sum(A.TIMEACTDURATION)
FROM TASKS T, TIMEACT A
WHERE T.TASKJOBID = "3350000-1125077875"
AND T.TASKJOBID = A.TIMEACTJOB
and T.TASKEMP = A.TIMEACTEMP
and T.TASKID = A.TIMEACTTASK

y no se como hacerlo desde ruby

he encontrado cosas como el uso de
:order
:includes
:join_include

pero tampoco he podido encontrar donde descargarlos

Gracias por la ayuda que me puedan brindar

rdavila 10/04/2008 16:54

Re: Hacer un Join desde Ruby
 
Hola ruddyvar, es sencillo hacer un join en Rails, aunque aqui es familiarmente conocido como "eager loading", aqui un ejemplo:

Supongamos que tenemos 2 modelos:

class Producto < ActiveRecord::Base
belongs_to :categoria
end

class Categoria < ActiveRecord::Base
has_many :productos
end

Queremos buscar el producto con ID 1, pero a la vez queremos obtener informacion de su categoria:

@produto = Producto.find(1, :include => :categoria)

Ahora puedes acceder a los datos de la categoria naturalmente asi:

categoria_nombre = @producto.categoria.nombre

Ahi automaticamente hace un join entre productos y categorias y de esta manera evitamos tirar 2 consultas contra la base de datos.

Saludos.

ruddyvar 11/04/2008 13:05

Re: Hacer un Join desde Ruby
 
ok, Muchas gracias rdavila.

Mira yo estoy tratando de hacer esta consulta>

def selecEmployees
Employee.find(:all,
:include=>[:Activitiestimer, :Customerjob],
:order => options[Activitiestimer.ACTROL, Customerjob.CUSJOBNAME])
end

pero me da error

rdavila 11/04/2008 20:14

Re: Hacer un Join desde Ruby
 
Hola ruddyvar, cada vez que necesites ayuda sobre un error, pues mandanos el error que te da, de otro modo no hay forma de saberlo ;), ahora me parece que el error es debido a que estas usando mal el parametro :order, deberia ser algo asi:

:order => 'campo1 DESC, campo2 ASC'

Saludos.


La zona horaria es GMT -6. Ahora son las 03:39.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.