注册
登录
Ruby
如何将命令行参数传递给rake任务
返回
如何将命令行参数传递给rake任务
作者:
狗头军师
发布时间:
2024-08-22 03:49:59 (1月前)
我有一个rake任务,需要将值插入多个数据库。
我想将此值从命令行或另一个 rake任务传递到rake任务中。
我怎样才能做到这一点?
收藏
举报
2 条回复
1#
回复此人
v-star*위위
|
2020-07-29 15-52
选项和依赖项必须在数组内部: ``` namespace :thing do desc "it does a thing" task :work, [:option, :foo, :bar] do |task, args| puts "work", args end task :another, [:option, :foo, :bar] do |task, args| puts "another #{args}" Rake::Task["thing:work"].invoke(args[:option], args[:foo], args[:bar]) # or splat the args # Rake::Task["thing:work"].invoke(*args) end end ``` 然后 ``` rake thing:work[1,2,3] => work: {:option=>"1", :foo=>"2", :bar=>"3"} rake thing:another[1,2,3] => another {:option=>"1", :foo=>"2", :bar=>"3"} => work: {:option=>"1", :foo=>"2", :bar=>"3"} ``` 注意:变量task是任务对象,除非您了解/关心Rake内部,否则不会很有用。 注: 如果从Rails运行任务,最好通过添加预加载环境=> [:environment]来设置相关任务。 ``` task :work, [:option, :foo, :bar] => [:environment] do |task, args| puts "work", args end ```
编辑
登录
后才能参与评论