Saya mengerjakan buku tutorial Ruby on Rails 3 dan mengetik yang berikut di baris perintah:
rake db:migrate
yang menghasilkan peringatan berikut.
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'
Saya tidak yakin apa yang harus saya lakukan atau bagaimana mengatasinya. Saya tidak tahu perintah lain untuk Rake.
Bagaimana cara memperbaiki masalah ini?
gem uninstall rake -v=0.9.1
. Kesalahan saya karena tidak menjelaskannya. Terima kasih atas klarifikasi Antonio! Salam, BrianMenambahkan
include Rake::DSL
ke Rakefile sebelum aplikasi load_tasks dipanggil juga berhasil untuk saya.Jadi dalam kasus pengguna di atas sebelum
DemoApp::Application.load_tasks
di Rakefile.sumber
Saya mengalami masalah yang sama di Windows dengan penginstal. Ruby 1.9.2 dan Rails 3.0.9. Inilah yang saya lakukan:
Setelah melakukan itu saya menjalankan rake 0.9.2.
Kemudian saya memperbarui Rakefile di folder root aplikasi sebagai berikut:
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
Seperti disebutkan dalam komentar, pastikan nama aplikasi Anda benar dalam dua baris yang sesuai di atas.
sumber
heroku rake db:migrate
perintah untuk bekerja, saya juga harus menambahkanrequire 'rake/dsl_definition'
rakefile (di atas baris 'rake' yang dibutuhkan).Jika Anda melihat ini di versi Rails yang lebih baru (seperti 3. +), Anda mungkin juga ingin memverifikasi bahwa lingkungan Anda bersih dengan menggunakan RVM http://beginrescueend.com/ dan membuat ruby & gemset khusus untuk proyek Anda.
Gunakan file .rvmrc untuk setiap proyek, ini akan menjamin Anda tidak mendapatkan permata sistem yang lebih lama ke dalam proyek Anda. Yang telah menggigitku sebelumnya.
Ini mencegah keharusan untuk berkeliaran dengan Rakefiles yang dihasilkan & semacamnya.
sumber
bundle exec rake db: migrate akan menyelesaikan masalah versi ruby Anda
sumber