繁体   English   中英

如何使用多个 arguments 创建自定义 rake 任务?

[英]How to create custom rake tasks with multiple arguments?

我想创建一个支持多个 arguments 的自定义 rake 任务。

完成后,我想调用 rake 任务,例如:

rails conifg:load -i 5 -o "now" ...

如何创建它们?

rubyonrails 指南) 说:

task :task_name, [:arg_1] => [:prerequisite_1, :prerequisite_2] do |task, args|
  argument_1 = args.arg_1
end

但我不明白。

完成后,我想调用 rake 任务,例如:

rails conifg:load -i 5 -o "now"...

你不能,这不是你将 arguments 传递给 Rake 任务的方式,那些 arguments ( -i-o等)被传递给 Rake 本身,而不是你的任务。

相反,有几个选项:

  • 使用具有(在我看来)远远优于 API 的thor ,并允许使用传统的 Unix 样式 arguments( -i ,-- --help等)。 您可以轻松地生成一个可以使用以下命令调用的脚本:

     thor config:load -i 5 -o "now"
  • 使用Rake 的参数 system ,您将在其中以形式传递 arguments

     rails config:load[5,now]
  • 构建自己的脚本,放在bin中。 例如, bin/config可以接受任意 arguments,并且可以随意调用。 以下任何一种情况都是可能的:

     ./bin/config load -i 5 -o now./bin/load_config i=5 o=now./bin/config.load 5 now # etc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM