Ruby Capistrano 2-将数组参数传递给Rake任务

Ruby Capistrano 2-将数组参数传递给Rake任务,ruby,rake,capistrano,Ruby,Rake,Capistrano,我正在尝试在deploy.rb中编写一个Rake任务,该任务将传递一个参数数组。我会通过卡皮斯特拉诺调查 假设任务如下所示: desc "my task" task :mytask, [:arguments] => :environment do |t, args| puts 'hello' end 当我尝试运行cap mytask['arg1 arg2 arg3']时,我得到以下结果: the task `mytask["arg1 arg2 arg3"]' does not exi

我正在尝试在deploy.rb中编写一个Rake任务,该任务将传递一个参数数组。我会通过卡皮斯特拉诺调查

假设任务如下所示:

desc "my task"
task :mytask, [:arguments] => :environment do |t, args|
  puts 'hello'
end
当我尝试运行cap mytask['arg1 arg2 arg3']时,我得到以下结果:

the task `mytask["arg1 arg2 arg3"]' does not exist
有什么想法吗?我有一个这样定义的任务,在本地运行时没有问题,但是使用cap定义这样的任务是不起作用的


注意:不使用参数部分运行cap mytask是可行的。这显然不是我想要的

Rake任务由字符串定义,并在内部通过Rake::Task[name]调用。如果cap将您的数组视为任务名称字符串的一部分,它将不起作用


作为“我的任务”!='mytask[arg1 arg2 arg3]'

很抱歉,我无法进一步帮助您,希望我能为您指明正确的方向,告诉您它可能失败的原因。您可以寻找另一种方法将参数传递给capistrano任务。@n_x_l capistrano 2也很可能不支持该rake功能。我发现Capistrano3应该以这种方式支持它,但如果2也支持它,则找不到任何来源。源代码是如此的不同,以至于很可能它没有。