On Apr 7, 2010, at 5:29 PM, Mariano Ayesa wrote:

2010/4/7 Lean <[email protected]>:
Digo:
Host.find(:all, :include => [:cliente])
y
Host.find(:all, :joins => [:cliente])
da exáctamente el mismo resultado. O sea, sólo las columnas de Host.

Ojo.. si usás :include, Rails ignora el :select. Para que funcione
:select, si o si tenés que usar :joins.

Fijate si te sirve esto..

@@hosts = Host.find(:all, :joins => "inner join clientes on
clientes.id=hosts.cliente_id", :select => "hosts.*, clientes.nombre as
nombre_cliente")

Luego, lo usas como:

@hosts.first.saraza
@hosts.first.nombre_cliente
@hosts.first.etc etc etc

Saludos,
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Creo, Mariano, que en el caso que proponés no evito el problema de tener "1+N queries". Eso es lo que quiero evitar con el bendito :joins o con :include o con lo que sea...

Lo que vos comentás sería lo mismo que hacer @hosts.first.cliente.nombre, verdad? Eso generaría ooootro query.

Mi intención es generar un UNICO query (tal como propone el "eager loading") pero que funcione... :-(

Gracias!


_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a