2010-11-22 13 views
10

Tengo algunas secuencias de comandos que necesito ejecutar y quiero acceder al entorno completo desde mi aplicación de rieles.En Rails, ¿cómo se ejecutan los scripts que cargan el entorno de los rieles?

Sé que he usado script/runner antes en Rails 2.3.

Pero también he utilizado 'delay_job' que carga el entorno de los carriles como esto (2.3 código):

#!/usr/bin/env ruby 

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment')) 
require 'delayed/command' 

El guión que estoy trabajando ahora toma los datos de una cola de mensajes y luego quiero usar el registro activo y mis modelos para insertar esos datos en una base de datos de registro (que puede o no ser la misma que la base de datos que usa el resto de la aplicación.

Respuesta

8

Desde su secuencia de comandos, necesita requerir el archivo config/environment.rb en su aplicación. Tenga en cuenta que esto es exactamente lo que DJ hace aquí. Esto también es cierto en Rails 3.

Tenga en cuenta que si a su vez la secuencia de comandos en una tarea Rake (que puede pegarse en Rakefile o en su propio archivo *.rake en lib/tasks), sólo tiene que tener su tarea dependerá de las tareas environment Rieles-definido.

task :mytask => :environment do 
    # custom stuff 
end 
+0

He escrito una serie de tareas personalizadas de rake también en 2.3. Yo también había considerado este enfoque. Gracias. –

Cuestiones relacionadas