Me gustaría definir una tarea de rake Ruby (1.9.2) -on-Rails (3.0.5) que agrega un usuario a la tabla User. El archivo tiene el siguiente aspecto:Rails Rake Tarea: acceso a la clase de modelo
#lib/tasks/defaultuser.rake
require 'rake'
namespace :defaultuser do
task :adduser do
u=User.new
u.email="[email protected]"
u.password="password"
u.save
u.errors.each{|e| p e}
end
end
me permitiría invocar la tarea como
> rake defaultuser:adduser
He probado el código en el: adduser tarea en la consola de Rails, y funciona bien. Probé la tarea rastrillo, funcionando solamente
print "defaultuser:adduser"
en el cuerpo de la tarea, y funcionó bien.
Sin embargo, cuando los combinados, se quejaron, diciendo
rake aborted!
uninitialized constant User
que intentaron una
require File.expand_path('../../../app/models/user.rb', __FILE__)
por encima de la definición de espacio de nombres en el archivo de rastrillo, pero eso no funcionó. Tengo
rake aborted!
ActiveRecord::ConnectionNotEstablished
¿Qué tengo que hacer para que tengo el mismo acceso a la clase de modelo de usuario en la tarea Rake que tengo en la consola de Rails?
Pregunta similar: [? Haz rieles rastrillo tareas proporcionan acceso a los modelos ActiveRecord] [1] [1]: http://stackoverflow.com/questions/876396/do-rails-rake-tasks -provide-access-to-activerecord-models –