Eduardo, en este post tenés una explicación de por qué se hace eso ahora, en la sección Optimized Eager Loading http://akitaonrails.com/2008/5/26/rolling-with-rails-2-1-the-first-full-tutorial-part-2
Básicamente, es porque dicen que varios joins de ese tipo van a generar una mejor performance general. Tambíen ahi tenés una referencia a los tickets donde se discutieron dichos cambios. Saludos, Carlos Kozuskzo. 2008/6/21 Eduardo Trápani <[EMAIL PROTECTED]>: > Hola, > > Tengo Programa y Version, Programa has_many :versiones. > > Cuando hago: > > Programa.find(:all,:include => :versiones) > > El SQL que genera es: > > SELECT * FROM `programas` > SELECT `versiones`.* FROM `versiones` WHERE (`versiones`.programa_id IN > (1,2,3)) > > Efectivamente los id de versiones son 1,2 y 3. Pero según el manual, en > "Eager loading of associations" debería generarse un join comparando el > programa_id de Version con el id de Programa. > > ¿Qué puede estar mal? Estoy usando rails 2.1.0. ¿Será que hacerlo así es > más efectivo que un join on programas.id = versiones.programa_id? > > Eduardo. > > PD: Probé con consultas que generaban muchos más valores para incluir y me > quedan unos Select ... where ...in (a,b,c,d,e,f,...) con cientos de valores. > _______________________________________________ > Ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > -- http://www.ckozus.com http://www.insignia4u.com
_______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
