Hola:
Necesitaba obtener el sql que active_record genera para guardarlo y
poder
ejecutarlo posteriormente.
Tras mucho Googlear por la web no he visto nada ni a nadie con mi mismo
problema (por lo que igual el que tiene necesidades raras soy yo).
Asà que he tirado por el camino de enmedio y he modificado Active Record
para que me de lo que le pido.
Este es el código resultante:
module ActiveRecord
class Base
class << self
def view_sql(*args)
options = args.extract_options!
validate_find_options(options)
set_readonly_option!(options)
construct_finder_sql(options)
end
end
end
end
Guardad el código anterior en un fichero dentro de la carpeta
config/initializers (ejemplo: view_sql.rb)
Ahora ya podemos obtener el código ejecutando nuestras consultas
habituales
con el núevo método:
Ejemplos:
Persona.view_sql(6) nos devolverá ‘select * from personas where id=6’
Admite todas las opciones de find :conditions, :order, :joins…
etc…
Si a alguien le puede servir, pues perfecto y si lo pueden mejorar, pues
fantástico.
Saludos,
Jorge A.
www.informatica32.com