Saya mengalami masalah yang sangat membuat frustrasi: Rake menjadi bodoh.
Begini caranya masalah muncul:
$ rails new test_app
$ rails generate scaffold new_scaffold field1:string field2:text
Keduanya bekerja dengan baik, tetapi ketika saya melakukan ini,
$ rake db:migrate
Saya mendapatkan kesalahan berikut.
(in /home/mikhail/test_app)
rake aborted!
uninitialized constant Rake::DSL
/usr/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:8:in `<class:TaskLib>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:6:in `<module:Rake>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:3:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `require'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `require'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `load'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `block in <top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `each'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `require'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `initialize_tasks'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:139:in `load_tasks'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing'
/home/mikhail/test_app/Rakefile:7:in `<top (required)>'
/usr/lib/ruby/1.9.1/rake.rb:2373:in `load'
/usr/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
/usr/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/usr/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
/usr/lib/ruby/1.9.1/rake.rb:1991:in `run'
/usr/bin/rake:31:in `<main>'
Saya sudah mencari di Internet untuk kesalahan yang sama / sama, dan orang-orang sudah memilikinya. Sepertinya tidak ada yang bisa menyelesaikan masalah!
Bagaimana saya memperbaiki masalah ini?
ruby-on-rails
rake
HRÓÐÓLFR
sumber
sumber
bundle update rake
dulu. Lalu aku memeriksanyabundle show rake
. Seharusnya mengatakan 0.8.7. Lalurake db:migrate
.gem "rake", "!= 0.9.0"
. Ini menghindari rilis 0.9.0 yang rusak, tetapi akan memperbarui ke yang lebih baru setelah rilis yang lebih segar diterbitkan (menghapus ini nanti tidak akan sakit, tetapi tetap tidak merusaknya).heroku rake db:migrate
ini dan ini sepertinya memperbaikinya. ingat untuk menambahkan dan melakukan perubahan ini ke git sebelum melanjutkan;)sudo gem install rake
untuk memastikan bahwarake
versi yang saya panggil dari baris perintah tidak 0.8.7.Saya melakukan riset tepat setelah jawaban saya sebelumnya (maaf, saya harus melakukannya sebelum itu).
Semua masalah diselesaikan dengan Rake gem 0.9.2 .. Saya mengikuti langkah-langkah ini:
gem install rake -v=0.9.2
(saya memiliki permata 0.9.1)gem uninstall rake -v=0.9.1
bundle update
kemudian
db:migrate
muncul peringatan,WARNING: Global access to Rake DSL methods is deprecated. Please....
Itu dipecahkan dengan menambahkan berikut ini ke file Rake.
Saya
module ::RakeFileUtils extend Rake::FileUtilsExtend
membatalkan opsi yang disarankan oleh @databyte.Ini berarti bahwa permata Rake 0.9.2 berfungsi dengan baik!
sumber
RakeFile
harus dilakukan sebelumrequire 'rake'
- menangkap saya :)gem uninstall rake -v=0.9.2
2)gem install rake -v=0.9.2
Melewati Bab 2 Railstutorial (demo_app) dan mengalami masalah ini. Saya mencoba semua jawaban lain yang tercantum di sini, tetapi tidak bisa berfungsi sampai saya melakukan ini:
Letakkan ini di Rakefile Anda di atas memerlukan 'rake':
via Bagaimana memperbaiki masalah Rake :: DSL konstan yang tidak diinisialisasi pada Heroku?
Saya juga mengaktifkan kembali dan mendorong semua file ke Github dan Heroku.
sumber
Yang perlu saya lakukan adalah menggunakan:
Saya sudah versi 0.9.2, hanya perlu menginstal.
sumber
Pasang kembali permata rake dan itu akan berfungsi dengan baik:
Jika tidak, tentukan versi '0.8.7' di Gemfile Anda.
sumber
Jika tidak menggunakan Bundler:
Kemudian pilih untuk menghapus 0.9.0.
sumber
Jika seperti saya Anda terjebak di rake 0.8.7, dan Anda menggunakan Rails 3.2.x maka railties menambahkan persyaratan untuk Rake :: DSL
Untuk mengatasi ini, ke bagian atas Rakefile Anda, Anda harus menambahkan:
sumber
Saya memecahkan masalah yang sama dengan langkah-langkah berikut:
Dalam Gemfile:
Kemudian jalankan ini di konsol:
Kemudian tambahkan baris berikut ke Rakefile:
sumber
Rails 3.1.rc1 telah diperbarui. Untuk Rakefiles Anda sendiri, Anda dapat menambahkan ini sebelum panggilan ke load_tasks.
https://gist.github.com/4cd2bbe68f98f2f0249f
UPDATE: Juga perhatikan itu sudah dijawab di sini juga: 'tugas' metode yang tidak ditentukan menggunakan Rake 0.9.0
sumber
Saya memiliki masalah yang sama dan harus menggunakan permata rake 0.8.7 bukannya 0.9.0.
sumber
Saya adalah pengguna Windows XP dan saya memiliki masalah yang sama.
Saya memasukkan permata "rake", "0.8.7" ke dalam gemfile, dan kemudian mengetik yang berikut dari jendela perintah.
Ini memperbaiki masalah saya.
sumber
bundle install --path=vendor/bundle
bundle exec rake db:migrate
Untuk memulai jenis server
bundle exec rails s
. Gunakan bundle exec dan Anda akan yakin bahwa Anda menggunakan permata yang tepat (versi yang diperlukan) untuk proyek Anda. Juga saya akan merekomendasikan Anda untuk menambahkanvendor/bundle
ke.gitignore
jika Anda menggunakangit
dan membuat alias untukbundle exec
. Jika Anda menggunakan,zsh
Anda dapat mengikuti pendekatan inisumber
Sama seperti Branstar di atas - terima kasih Branstar!
Saya mengikuti instruksi di Running Rails 3 di Windows .
Semua bekerja sampai bagian "rake db: bermigrasi" yang memberi saya output yang sama dengan posting asli.
Saya berlari:
Saya berlari lagi:
Kemudian saya dapat memulai server Ruby on Rails dan memiliki semuanya.
Terima kasih lagi Branstar :-)
sumber
Saya merasa untuk Anda (mikhailvs), ini benar-benar membuat frustrasi. Saya sudah gila selama hampir satu hari penuh. Saya bahkan menghapus Ruby dan semua file yang bergantung padanya dan mematikan PC saya, tetapi saya masih mendapatkan masalah yang sama.
Apa yang saya dapatkan dari pesan kesalahan adalah masalah dengan Rake 0.9.2. Sepertinya itu tidak sepenuhnya diinstal. Jadi saya harus menginstal ulang
gem install rake -v=0.9.2
Saya tidak yakin apakah saya telah menyapu –v0.9.1 diinstal. Jadi untuk memastikan saya aman saya mencoba menghapus versi lama itu
gem uninstall rake -v=0.9.1
. Tetapi ditunjukkan kepada saya pesan kesalahanOK, jadi saya memeriksa semua direktori Rake di PC saya, dan ternyata saya hanya punya Rake 0.9.2. Kemudian untuk memeriksa apakah semuanya baik-baik saja, saya bermigrasi dengan
rake db:migrate
. Dan itu berhasil :)Saya rasa saya tidak memiliki Rake 0.9.1 karena saya membersihkan-instal Ruby ( rubyinstaller-1.9.2-p180 - pada sistem Windows 7 saya) dan semua permata juga. Sementara itu Rake 0.9.2 tidak sepenuhnya diinstal.
sumber
Menghapus instalan dengan "gem uninstall rake" bekerja untuk saya, saya memiliki 2 versi diinstal, jadi saya bercanda melakukan instal ulang bersih.
"rake db: create" , untuk memastikan database ada dan kemudian "rake db: bermigrasi" untuk menyegel kesepakatan.
sumber
Saya memiliki masalah yang sama menggunakan Rake 0.9.2.2. Saya memecahkan masalah ini dengan menggunakan bundle exec.
sumber
Untuk pengeditan Rails 2.3
lib/tasks/rspec.rake
seperti di komit ini berfungsi untuk saya:https://github.com/dchelimsky/rspec-rails/pull/11/files
sumber
Instal rake 0.8.7 dan hapus instalan 0.9.2.2
Sekarang gunakan
Saya pikir ini akan membantu Anda;)
sumber
Lari
ini bekerja untuk saya.
sumber