[英]Running gems rake tasks from application rake tasks
我正在嘗試從我的應用程序的rake任務中添加一個來自gem(geocoder https://github.com/alexreisner/geocoder )的rake任務,因為我希望它可以在構建數據庫后立即運行。
所以我在rakefile中有這段代碼
task :geolocal do
spec = Gem::Specification.find_by_name 'geocoder'
load "#{spec.gem_dir}/lib/tasks/geocoder.rake"
puts '##################GEOCODING##############'
Rake::Task["geocode:all CLASS=ProposedAccomodation"].execute
end
只是跟隨這個問題Ruby Rake從gem加載任務,但是我一直收到相同的錯誤
Don't know how to build task 'geocode:all CLASS=ProposedAccomodation'
任何線索我在做什么錯?
因此,這里有幾件事要考慮。
記錄下來,這就是您使用參數調用任務的方式
Rake::Task["taskname"].execute(args)
在您的情況下,我首先沒有意識到,它實際上使用環境變量而不是讀取為ENV['CLASS']
的任務參數。
它將回答您的問題,因此您可以將其設置為ENV['CLASS'] = 'ClassName'
或將其傳遞給對rake任務rake geolocal CLASS=ProposedAccomodation
調用。
這給我帶來了以下問題:為什么您不只是調用原始的rake任務,而沒有添加任何內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.