rake - traductor - Constante no inicializada en tareas de rastrillo
traductor de frases en ingles a español gratis (2)
Aquí está la configuración:
Aplicación New Rails, luego coloque este test_rake.rake en lib / tasks:
task :testclass do
HelloClass.hello
end`
Coloque hello_class.rb en la aplicación / modelos, o en lib / con esta línea: config.autoload_paths += %W(#{config.root}/lib)
agregado a config.rb
class HelloClass
def self.hello
puts ''hello_class''
end
end
rake testclass da este error:
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2503:in `const_missing''
/Users/name/Sites/Rails/indexapp/lib/tasks/test_class.rake:5:in `block (2 levels) in <top (required)>''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:636:in `call''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:636:in `block in execute''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:631:in `each''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:631:in `execute''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:597:in `block in invoke_with_call_chain''
/Users/name/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:583:in `invoke''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2029:in `block (2 levels) in top_level''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2029:in `each''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2029:in `block in top_level''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2001:in `block in run''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:1998:in `run''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/bin/rake:31:in `<top (required)>''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/bin/rake:19:in `load''
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/bin/rake:19:in `<main>''
¿Algunas ideas? Desinstalé y volví a instalar Ruby a través de RVM, eliminé / reconstruí el gemset e imprimí las rutas de autocarga para asegurarme de que hello_class.rb estuviera en uno de ellos ...
Puedo solicitar HelloClass manualmente desde el archivo .rake, pero luego tengo que hacer lo mismo para cualquier cosa de la que dependa HelloClass, por ejemplo, si HelloClass incluye HTTParty o la tarea configura un trabajo retrasado.
Cualquier ayuda sería increíble. ¡Gracias!
Esto también ocurre cuando especificas correctamente la task :testclass => :environment do
dependencia task :testclass => :environment do
, pero has habilitado threadsafe!
.
Para solucionar esto, si habilitó la función de threadsafe
, haga esto:
# in your application.rb or environment file:
#
config.threadsafe! unless File.split($0).last == ''rake'' # unless this is a rake task
Si comienza su tarea de rake con task :testclass => :environment do
, su entorno Rails se cargará y estará disponible para la tarea.