2010/4/7 Lean <[email protected]> > @hosts = Host.find(:all, :joins => "inner join clientes as c on > c.id=hosts.cliente_id", > :select => "hosts.*, c.nombre") > > => [#<Host id: 1, hostname: "mandala", cliente_id: 1, created_at: > "2010-04-07 15:56:01", updated_at: "2010-04-07 15:56:01">, #<Host id: 2, > hostname: "mancha", cliente_id: 1, created_at: "2010-04-07 15:56:08", > updated_at: "2010-04-07 15:56:08">, #<Host id: 3, hostname: "mandril", > cliente_id: 1, created_at: "2010-04-07 15:56:12", updated_at: "2010-04-07 > 15:56:12">, #<Host id: 4, hostname: "manifold", cliente_id: 1, created_at: > "2010-04-07 15:56:17", updated_at: "2010-04-07 15:56:17">, #<Host id: 5, > hostname: "mantarraya", cliente_id: 1, created_at: "2010-04-07 15:56:24", > updated_at: "2010-04-07 15:56:24">] >
Probé el caso y me funcionó (mapeaba "c.nombre" a "nombre"). Por las dudas, probá poner "c.nombre AS nombre_cliente"... Igual insisto, no lo hagas así, utilizá diferentes entidades. > Me estoy volviendo loco... Les parece que sea un bug? Tengo muy poca > experiencia en rails, pero no puede ser que no funcione este ejemplo tan > chiquito... Encima está documentado el uso del :select en las páginas de la > API correspondiente y dice que se usa así... ¿decís que en la documentación te dice de agregar columnas de otra entidad? No encuentro algo así. http://apidock.com/rails/ActiveRecord/Base/find/class Idealmente, si usás el select, no indiques columnas que no estarían indicadas sin usarlo (o sea, restringite a un subconjunto de las columnas de la tabla propia de la entidad que estás consultando -- sino te devuelve un frankestein). Se suele usar, por ejemplo, por si tenés un campo TEXT muy grande y sabés a priori que no lo vas a usar (para evitar cargarlo en memoria, ya que puede ser potencialmente grande). nachokb
_______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
