Pregunta

Quiero ejecutar un script ruby ??independiente en el que necesito usar mi entorno RoR. Específicamente, necesito que mis modelos extiendan ActionMailer y ActiveRecord. También necesito leer la configuración de la base de datos desde mi database.yml. ¿Cómo lo hago?

¿Fue útil?

Solución

La forma más fácil es cambiar el shebang de su script de:

#!/usr/bin/ruby

a

#!/path/to/your/rails/script/runner

Et voilà, su script se ejecutará con el entorno de rieles completo cargado. También puede ejecutar su script como ./my_script -e production para que se ejecute con la base de datos de producción.

Otros consejos

Mira este hilo: ¿Cómo ejecuto las tareas de Ruby que usan mis rieles? modelos?

Esencialmente se reduce a:

require "#{ENV['RAILS_ROOT']}/config/environment.rb"

¡Diviértete!

Creo que la mejor manera de hacer esto es hacerlo una tarea de rastrillo.

   # lib/tasks/mystuff.rake
   desc 'do my stuff'
   task :my_stuff => [:environment] do
     # do my stuff
   end

La estrofa [: environment] carga el entorno de los rieles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top