Estou trabalhando no livro do tutorial do Ruby on Rails 3 e digitei o seguinte na linha de comando:
rake db:migrate
que produziu o seguinte aviso.
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'
Não tenho certeza do que fazer ou como lidar com isso. Não conheço nenhum outro comando para Rake.
Como posso resolver este problema?
gem uninstall rake -v=0.9.1
. Meu erro por não deixar isso claro. Obrigado pelo esclarecimento Antonio! Saúde, BrianAdicionar
include Rake::DSL
ao Rakefile antes de os aplicativos load_tasks serem chamados também funcionou para mim.Portanto, no caso do usuário acima antes do
DemoApp::Application.load_tasks
no Rakefile.fonte
Eu estava tendo o mesmo problema no Windows com o instalador. Ruby 1.9.2 e Rails 3.0.9. Aqui está o que eu fiz:
Depois de fazer isso, estava executando o rake 0.9.2.
Em seguida, atualizei o Rakefile na pasta raiz do aplicativo da seguinte maneira:
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
Conforme observado no comentário, certifique-se de que o nome do seu aplicativo esteja correto nas duas linhas apropriadas acima.
fonte
heroku rake db:migrate
comando funcionar, eu também tive que adicionarrequire 'rake/dsl_definition'
ao rakefile (acima da linha require 'rake').Se você está vendo isso em versões posteriores do Rails (como 3. +), você também pode querer verificar se seu ambiente está limpo usando RVM http://beginrescueend.com/ e criando um ruby & gemset específico para seus projetos.
Use um arquivo .rvmrc por projeto, isso garantirá que você não está inserindo gems de sistema mais antigas em seus projetos. Que já me mordeu antes.
Isso evita ter que mexer com Rakefiles gerados e outros.
fonte
bundle exec rake db: migrate resolverá seus problemas de versão ruby
fonte