Cargar el environment de Rails en una tarea

Hola,
estoy intentando de ejecutar un script para el cual necesito acceder al
environment de la aplicación. Hasta el momento las formas que conozco
son:

$ script/runner -e my_environment my_script

$ script/console my_environment < my_script

Sin embargo ninguna de las dos me parece muy elegante a la hora de
querer que estos scripts estén realmente incluidos dentro de tareas con
dependencias.

La idea es por ejemplo tener un rakefile:

namespace :example do

task :insert_cats do
Cat.new(:name => ‘Tom’).save
Cat.new(:name => ‘Felix’).save
Cat.new(:name => ‘Garfield’).save
end

end

¿Cómo puedo incluir el environment de rails?

Saludos,
Daniel H.

On Jun 20, 2007, at 9:56 PM, Daniel Hernández wrote:

Sin embargo ninguna de las dos me parece muy elegante a la hora de
Cat.new(:name => ‘Felix’).save
Cat.new(:name => ‘Garfield’).save
end

end

¿Cómo puedo incluir el environment de rails?

Pon la tarea :environment como dependencia:

task :insert_cats => :environment do

end

– fxn

La idea es por ejemplo tener un rakefile:

namespace :example do

task :insert_cats do
Cat.new(:name => ‘Tom’).save
Cat.new(:name => ‘Felix’).save
Cat.new(:name => ‘Garfield’).save
end

end

¿Cómo puedo incluir el environment de rails?

En el Rakefile que te genera el rails vienen las siguientes líneas:

require(File.join(File.dirname(FILE), ‘config’, ‘boot’))

require ‘rake’
require ‘rake/testtask’
require ‘rake/rdoctask’

require ‘tasks/rails’


Así que copialas al principio y ya tienes rails cargado… lo que para
escoger un enviroment u otro puedes poner la línea:

ENV[‘RAILS_ENV’] = ‘my_environment’

antes del primer require.