Ruby 在capistrano任务中使用子字符串

Ruby 在capistrano任务中使用子字符串,ruby,capistrano,Ruby,Capistrano,我对卡皮斯特拉诺相当陌生。我想知道如何在capistrano任务中对变量进行子串 这给了我在irb中的期望 ruby-1.9.2-p136 :012 > release_path = "12345678910" => "12345678910" ruby-1.9.2-p136 :019 > release_path[-6..-1] => "678910" 它在capistrano任务中不执行任何操作 namespace :namespacename do tas

我对卡皮斯特拉诺相当陌生。我想知道如何在capistrano任务中对变量进行子串

这给了我在irb中的期望

ruby-1.9.2-p136 :012 > release_path = "12345678910"
 => "12345678910"
ruby-1.9.2-p136 :019 > release_path[-6..-1]
 => "678910"
它在capistrano任务中不执行任何操作

namespace :namespacename do
  task :taskname do

    release_path = "1234678910"
    release_path[-6..-1]

    # output is still "12345678910"
    puts release_path

  end
end

有人知道如何在capistrano任务中的变量上使用ruby类/方法吗?提前感谢。

这是capistrano中的所有ruby,所以一切都很顺利:

namespace :namespacename do
  task :taskname do

    release_path = "1234678910"
    release_path[-6..-1]     #<----    NO!!!

    # output is "678910"
    puts release_path[-6..-1]      #<----    YEAH BOY!!!

    release_path = release_path[-6..-1]
    puts release_path       # output is "678910"

    release_path[-3..-1]   # does nothing because "910" is returned into thin air
    puts release_path[-3..-1]       # output is "910"
    puts release_path[-3..-1][-2..-1]    # output is substring of substring "10"
  end
end
namespace:namespacename do
任务:taskname do
释放路径=“1234678910”

发布路径[-6..-1]#首先感谢您的回答。如果我通过使用puts的代码注释得到正确的结果,那么发布路径[-6..-1]应该可以,对吗?不幸的是,我尝试了这个方法,却得到了同样的结果。release\u path仍然包含原始值。如果要将release\u path设置为子字符串,请使用release\u path=release\u path[-6..-1],因为使用[]语法只会返回它,很难解释,所以我将用更多的用法示例更新我的答案。您在irb中看到输出的原因是我标记为“输出到稀薄空气中”的内容这是因为irb非常冗长,可以告诉您每个命令的执行情况,不管它是否实际输出。非常感谢您的解释和示例!我终于明白了。明亮的干杯