2011-05-20 20 views
17

El archivo Gem solo contiene rails 3.0.7 y sqlite3, de repente el rake no se ejecutará en ninguna aplicación. El error se inició al ejecutar' rake db: migrate ' Seguimiento completo salida:Rake 0.9.0 'método' no definido 'tarea' '

rake aborted! 
undefined method `task' for #<NotWorking::Application:0x00000100ccc328> 
/Users/codywright/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/application.rb:215:in `initialize_tasks' 
/Users/codywright/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/application.rb:139:in `load_tasks' 
/Users/codywright/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing' 
/Users/codywright/Code/Rails/not_working/Rakefile:7:in `<top (required)>' 
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load' 
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/rake_module.rb:25:in `load_rakefile' 
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:495:in `raw_load_rakefile' 
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:78:in `block in load_rakefile' 
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:77:in `load_rakefile' 
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:61:in `block in run' 
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/lib/rake/application.rb:59:in `run' 
/Users/codywright/.rvm/gems/[email protected]/gems/rake-0.9.0/bin/rake:31:in `<top (required)>' 
/Users/codywright/.rvm/gems/ruby-1.9.2-p180/bin/rake:19:in `load' 
/Users/codywright/.rvm/gems/ruby-1.9.2-p180/bin/rake:19:in `<main>' 
+0

ver aquí http://stackoverflow.com/questions/5287121/undefined-method-task-using-rake-0-9-0-beta-4 – Rob

+0

Buenas noticias! Rails 3.0.8.rc1 ha solucionado este problema, consulte https://github.com/rails/rails/commit/83f257fc4862642af29056cb5b7dfef6e1303754 –

Respuesta

8

que hice: sudo gem uninstall rake -v 0.9 luego añadió gem 'rake', '0.8.7' a mi archivo joya.

3

gem 'rake', '0.8.7' en Gemfile funciona, si también puede necesitar ejecutar bundle update rake si el bundler se queja de rake locked '0.9.0'.

Aquí es la cuestión de rastrillo página de GitHub https://github.com/jimweirich/rake/issues/33

0

ejecutar estas 2 líneas en el símbolo del sistema. Eliminará el rastrillo 0.9.0. sustituto de su nombre de usuario, donde se muestra "nombre de usuario"

GEM_HOME='/Users/username/.rvm/gems/[email protected] 'GEM_PATH ='/Users/username/.rvm/joyas/[email protected] 'gem desinstalación rastrillo

GEM_HOME ='/Usuarios/nombre de usuario/.rvm/gems/ruby-1.9.2-p180 'GEM_PATH ='/Usuarios/nombre de usuario/.rvm/gems /ruby-1.9.2-p180' joya rastrillo desinstalación

a continuación, instalar las gemas correctas:

joya RVM instalación mysql2 -v 0.2.7

RVM joya instalar rastrillo -v 0.8.7

actualización de la gema de MySQL (DECLARACIÓN aquí mostrar para Intel x86_64 instalar):

ARCHFLAGS env = "- arco x86_64" joya instalar MySQL - --with-mysql -config =/usr/local/mysql/bin/mysql_config

Cuando se crea una nueva aplicación:

carriles nueva mysql -d

que no es necesario cambiar el Gemfile o utilizar exec paquete

Espero que esto tenga sentido. Esta publicación no me deja diseñar la sintaxis donde sea legible.

+0

que básicamente escribió lo mismo que [@Tyler] (http://stackoverflow.com/questions/ 6075997/rake-0-9-0-undefined-method-task/6077849 # 6077849). La diferencia es que lo hizo en una línea y agregó información irrelevante. ¿Cuál es el punto de? Por favor, [lea las preguntas frecuentes] (http://stackoverflow.com/faq) cuidadosamente – Andrei

2

Estoy en jruby. Aquí están los comandos exactos que me liberaron del problema.

jruby -S gem uninstall rake 
jruby -S gem install rake -v 0.8.7 

edición Gemfile: Añadir esto después de joya 'rieles':

gem 'rake', '0.8.7' 

finalmente se ejecuta:

jruby -S bundle update rake 
5

Más que rebajó su rastrillo, permite fijar su archivo por application.rb agregando la línea:

include Rake::DSL 

¡Solo agregue eso dentro de la aplicación de la clase y debería estar bien!

Ejemplo de aplicación.RB:

module AppName 
    class Application < Rails::Application 
    include Rake::DSL 
    end 
end 
Cuestiones relacionadas