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

时间:2014-12-15 22:07:58

标签: ruby rake capistrano

我正在尝试在我的deploy.rb中编写一个Rake任务,该任务会传递一组参数。我将通过capistrano运行它。

假设有如下任务:

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可以正常运行。这显然不是我想要的。

1 个答案:

答案 0 :(得分:0)

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

作为'mytask' != 'mytask["arg1 arg2 arg3"]'