我正在尝试从我的应用程序的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 load tasks from a gem 但我一直得到同样的错误
Don't know how to build task 'geocode:all CLASS=ProposedAccomodation'
任何线索我做错了什么?
答案 0 :(得分:0)
所以这里有几件事需要考虑。
对于记录,这是您使用参数调用任务的方式
Rake::Task["taskname"].execute(args)
在你的情况下,我首先没有意识到,它实际上使用的是环境变量,而不是被称为ENV['CLASS']
的任务参数。
可以回答您的问题,因此您可以将其设置为ENV['CLASS'] = 'ClassName'
,也可以将其传递给您对佣金任务rake geolocal CLASS=ProposedAccomodation
的调用。
这让我想到了一个问题:你为什么不只是调用原来的rake任务,你没有添加任何东西。