[ruby-on-rails] Rake의 ‘환경’작업은 무엇입니까?

Custom Rake Tasks ” 에 따르면 :

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

내가 아는 한, 그 :winner => :environment뜻은 ” environment전에 해라 winner“. 그러나 무엇 environment입니까? 언제 사용해야합니까?

시도 rake -T했지만 목록에서 찾을 수 없습니다 environment.



답변

작업을 환경 작업에 종속되도록하여 모델 및 실제로 전체 환경에 액세스 할 수 있습니다. 이렇게하면 run rake RAILS_ENV=staging db:migrate.

Custom Rake Tasks “를 참조하십시오 .


답변

Rails 환경에로드되므로 실제로 모델을 사용할 수 있고 사용하지 않을 수 있습니다. 그렇지 않으면 그런 것들에 대해 전혀 모릅니다.

따라서 방금 수행 puts "HI!"한 작업을 만든 경우 :environment종속성에 작업을 추가 할 필요가 없습니다 . 그러나 당신이 User.find(1)잘하고 싶다면 그것을 필요로 할 것입니다.


답변

를 포함 => :environment하면 Rake에게 애플리케이션 환경을 모두로드하도록 지시하여 관련 작업에 클래스, 도우미 등과 같은 항목에 대한 액세스 권한을 부여합니다.를 사용하지 않으면 :environment이러한 추가 항목에 액세스 할 수 없습니다.

또한 => :environment자체는하지 않습니다 사용할 수있는 환경 관련 변수, 예를 들어 environment, @environment, RAILS_ENV, 등


답변