Menurut " Tugas Rake Kustom ":
desc "Pick a random user as the winner"
task :winner => :environment do
puts "Winner: #{pick(User).name}"
end
Sejauh yang saya tahu, :winner => :environment
artinya "lakukan environment
dulu winner
". Tapi apa environment
? Kapan saya harus menggunakannya?
Saya mencoba rake -T
, tetapi dalam daftar saya tidak dapat menemukan environment
.
ruby-on-rails
rake
Lai Yu-Hsuan
sumber
sumber
Jawaban:
Anda bisa mendapatkan akses ke model Anda, dan pada kenyataannya, seluruh lingkungan Anda dengan membuat tugas bergantung pada tugas lingkungan. Ini memungkinkan Anda melakukan hal-hal seperti
run rake RAILS_ENV=staging db:migrate
.Lihat " Tugas Rake Kustom ".
sumber
Itu dimuat di lingkungan Rails Anda sehingga Anda benar-benar dapat menggunakan model Anda dan apa yang tidak. Jika tidak, ia tidak tahu tentang hal-hal itu.
Jadi jika Anda membuat tugas yang baru saja dilakukan
puts "HI!"
maka Anda tidak perlu menambahkan:environment
tugas tersebut ke dependensi. Tetapi jika Anda ingin melakukan sesuatu seperti itu denganUser.find(1)
baik, itu akan membutuhkannya.sumber
Termasuk
=> :environment
akan memberi tahu Rake untuk memuat penuh lingkungan aplikasi, memberikan akses tugas yang relevan ke hal-hal seperti kelas, pembantu, dll. Tanpa:environment
, Anda tidak akan memiliki akses ke salah satu dari ekstra itu.Juga
=> :environment
sendiri tidak menyediakan variabel yang berhubungan dengan lingkungan, misalnyaenvironment
,@environment
,RAILS_ENV
, dllsumber