Estoy desarrollando una aplicación que necesita enviar mensajes de texto, por lo que tengo la información del operador almacenada en una base de datos. También necesito esa información en un archivo XML para leer el código del lado del cliente. Para que esto suceda, estoy escribiendo un script que lee la información del proveedor de la base de datos y crea un archivo XML en el directorio de configuración. Sentí que este script encajaría mejor en lib/tasks.¿Cómo accedo a mi base de datos de raíles desde una tarea en lib/tasks?
Necesito acceder a la base de datos desde este script, pero quiero usar algún objeto para acceder a él. Si uso
db = Mysql.new("domain", "username", "password", "database")
Tendré que mantener múltiples versiones para diferentes entornos porque no uso MySQL todo el tiempo. Eso sería muy descuidado. Estoy seguro de que hay una manera de hacer esto. Traté simplemente acceder al objeto ... esto es lo que tengo hasta ahora:
RAILS_HOME = File.expand_path(File.join(File.dirname(__FILE__),"../.."))
RAILS_CONFIG = "#{RAILS_HOME}/config"
f = File.new("#{RAILS_CONFIG}/mls_widget_config.xml", "w")
carriers = Carrier.find_all
f.write carriers
f.close
Pero portador no está definido, lo cual tiene sentido. ¿Cómo puedo darle acceso a este script al objeto Carrier en el DB?
También como un lado, si alguien sabe cómo convertir fácilmente lo que leí de la base de datos en XML adecuado, sería genial. Iba a escribir algo personalizado muy rápido.
¡Gracias!
Esto no explica cómo vincular a la clase de modelo, como se pregunta. – Tilendor