Retroceder   Foros del Web > Programación para sitios web > Ruby on Rails

Respuesta
 
Herramientas Desplegado
Antiguo 10-abr-2008, 15:17   #1 (permalink)
ruddyvar ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 5
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
ruddyvar está desconectado   Responder Citando
Antiguo 10-abr-2008, 16:54   #2 (permalink)
rdavila ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 14
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.
rdavila está desconectado   Responder Citando
Antiguo 11-abr-2008, 13:05   #3 (permalink)
ruddyvar ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 5
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
ruddyvar está desconectado   Responder Citando
Antiguo 11-abr-2008, 20:14   #4 (permalink)
rdavila ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 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.
rdavila está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 13:38.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93