Ruby 在capistrano任务中使用子字符串
我对卡皮斯特拉诺相当陌生。我想知道如何在capistrano任务中对变量进行子串 这给了我在irb中的期望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
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非常冗长,可以告诉您每个命令的执行情况,不管它是否实际输出。非常感谢您的解释和示例!我终于明白了。明亮的干杯