Rake'deki 'çevre' görevi nedir?


120

" Özel Tırmık Görevlerine " göre:

desc "Pick a random user as the winner"
task :winner => :environment do
  puts "Winner: #{pick(User).name}"
end

Bildiğim kadarıyla, :winner => :environment"daha environmentönce yap winner" demek . Ama ne var environment? Ne zaman kullanmalıyım?

Denedim rake -Tama listede bulamadım environment.


Yeni söz dizimine göz atın stackoverflow.com/questions/12493337/…
Jahan

Yanıtlar:


120

Görevleri çevre görevine bağlı hale getirerek modellerinize ve aslında tüm ortamınıza erişebilirsiniz. Bu, buna benzer şeyler yapmanızı sağlar run rake RAILS_ENV=staging db:migrate.

Bkz. " Özel Tırmık Görevleri ".


4
Kaynakta nerede tanımlanmıştır? Komisyon görevlerinin nerede olduğunu buldum ve 'app: environment'a bağlı boş bir görev tanımı buldum, ancak uygulamanın tanımını bulamıyorum: çevre görevi. github.com/rails/rails/blob/master/railties/lib/rails/tasks/…
odigity


41

Rails ortamınıza yüklenir, böylece modellerinizi gerçekten kullanabilir ve kullanamayabilirsiniz. Aksi takdirde, o şeyler hakkında hiçbir fikri yoktur.

Yani, az önce yaptığınız bir görev yaptıysanız puts "HI!", :environmentgörevi bağımlılıklara eklemenize gerek yoktur . Ama User.find(1)iyi bir şey yapmak istiyorsan buna ihtiyacın olacak.


35

Dahil etmek => :environment, Rake'e uygulama ortamını tam olarak yüklemesini söyleyecektir, ilgili göreve sınıflar, yardımcılar, vb. Gibi şeylere erişim hakkı :environmentverecektir.

Ayrıca => :environmentkendisi yapmaz bulunan herhangi çevre ile ilgili değişkenler, örneğin environment, @environment, RAILS_ENVvb


Görevin belgesinin yöntemi onu anlamak için çok basit.
Albert.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.