簡體   English   中英

從應用程序耙任務運行gem耙任務

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM