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