--------------------------------------------------
From: "Nicolás Sanguinetti" <[email protected]>
Sent: Monday, February 22, 2010 6:52 PM
To: "Grupo Ruby Argentina" <[email protected]>
Subject: Re: [RubyArg] Valores nulos en un bloque, utilizando sum
Sobre el query en sí, ActiveRecord te da un API "relativamente"
elegante (según cómo se lo mire) para no tener que escribir SQL a
mano. En particular, lo que vos querés, es hacer JOIN con un par de
tablas y filtrar por una condición, y quedaría así:
ClientMovement.all(:joins => [:inquiry, :client], :conditions => {
"clients.id" => params[:id] })
Entre otras cosas, esto te evita el SQL injection que te mencionaron,
y es mucho más fácil de leer. (El valor de :joins asume que
ClientMovement tiene una asociación "belongs_to :client" y "belongs_to
:inquiry". En caso de que fueran has_many, lo que le pasás es el
nombre de la asociación, por lo que sería :joins => [:inquiries,
:clients])
Lo que pasa es que ClientesMovimientos tiene una asociacion "belongs_to
:solicitud" y Solicitud tiene una asociacion "belongs_to :cliente"
Es algo asi:
ClientesMovimientos
||
====>Solicitudes
||
===>Clientes
Asi que ruby me reto al hacer mas o menos como mi pequeña mente imagino que
estaba bien:
@clientes_movimientos = ClienteMovimiento.all(:joins => [:solicitud,
:cliente],
:conditions => {"clientes.id" => params[:id] })
Y me dijo en ingles ¨Association named 'cliente' was not found; perhaps you
misspelled it?¨
Aunque se lo que dice, no se como darle ahora sin usar find_by_sql, y como
me gusta todo lo que es mas al estilo ruby on rails, pregunto si pudieras
decirme como seria en este caso. :)
Desde ya gracias.
P.D.: Perdona por mesclar ingles con español es que aunque leo e interpreto
bien el ingles, me gusta mas el español jeje. Aunque le bajo con todo al
ingles siempre que pueda.
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar