Zgodnie z „ Custom Rake Tasks ”:
desc "Pick a random user as the winner"
task :winner => :environment do
puts "Winner: #{pick(User).name}"
end
O ile wiem, :winner => :environment
oznacza to „zrób environment
wcześniej winner
”. Ale co to jest environment
? Kiedy powinienem go używać?
Próbowałem rake -T
, ale na liście nie mogłem znaleźć environment
.
ruby-on-rails
rake
Lai Yu-Hsuan
źródło
źródło
Odpowiedzi:
Możesz uzyskać dostęp do swoich modeli, a właściwie do całego środowiska, uzależniając zadania od zadania środowiska. To pozwala robić takie rzeczy jak
run rake RAILS_ENV=staging db:migrate
.Zobacz „ Niestandardowe zadania prowizji ”.
źródło
Ładuje się w środowisku Railsów, więc możesz używać swoich modeli, a co nie. W przeciwnym razie nie ma pojęcia o tych rzeczach.
Więc jeśli wykonałeś zadanie, które właśnie się wykonało
puts "HI!"
, nie musisz dodawać:environment
zadania do zależności. Ale jeśli chcesz zrobić cośUser.find(1)
dobrze, to będzie tego potrzebować.źródło
Włączenie
=> :environment
spowoduje, że Rake załaduje pełne środowisko aplikacji, dając odpowiednim zadaniom dostęp do takich rzeczy, jak klasy, pomocnicy, itp. Bez tego:environment
nie będziesz mieć dostępu do żadnego z tych dodatków.Również
=> :environment
sama nie udostępniają wszelkie zmienne związane ze środowiskiem, na przykładenvironment
,@environment
,RAILS_ENV
, itd.źródło