Estoy trabajando en el libro tutorial de Ruby on Rails 3 y escribí lo siguiente en la línea de comando:
rake db:migrate
que produjo la siguiente advertencia.
WARNING: Global access to Rake DSL methods is deprecated. Please Include
... Rake::DSL into classes and modules which use the Rake DSL methods.
WARNING: DSL method DemoApp::Application#task called at /Users/imac/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.7/lib/rails/application.rb:215:in `initialize_tasks'
No estoy seguro de qué hacer al respecto o cómo trabajar con él. No conozco ningún otro comando para Rake.
¿Como puedo solucionar este problema?
gem uninstall rake -v=0.9.1
. Mi error por no dejarlo claro. Gracias por la aclaración Antonio! Saludos, BrianAgregar
include Rake::DSL
al Rakefile antes de que se llamaran las aplicaciones load_tasks también funcionó para mí.Entonces, en el caso del usuario anterior antes del
DemoApp::Application.load_tasks
en el Rakefile.fuente
Tenía el mismo problema en Windows con el instalador. Ruby 1.9.2 y Rails 3.0.9. Aquí esta lo que hice:
Después de hacer eso, estaba ejecutando rake 0.9.2.
Luego actualicé el Rakefile en la carpeta raíz de la aplicación de la siguiente manera:
require File.expand_path('../config/application', __FILE__) require 'rake' # If you named your application something other than SampleApp, change that below module ::SampleApp class Application include Rake::DSL end end module ::RakeFileUtils extend Rake::FileUtilsExt end SampleApp::Application.load_tasks
Como se indica en el comentario, asegúrese de que el nombre de su aplicación sea correcto en las dos líneas correspondientes anteriores.
fuente
heroku rake db:migrate
comando funcione, también tuve que agregarlorequire 'rake/dsl_definition'
al archivo rake (arriba de la línea require 'rake').Si está viendo esto en versiones posteriores de Rails (como 3. +), también puede querer verificar que su entorno esté limpio usando RVM http://beginrescueend.com/ y creando un ruby & gemset específico para sus proyectos.
Use un archivo .rvmrc por proyecto, esto garantizará que no obtenga gemas del sistema más antiguas en sus proyectos. Que me ha mordido antes.
Esto evita tener que jugar con Rakefiles generados y demás.
fuente
bundle exec rake db: migrate resolverá los problemas de la versión ruby
fuente