gpt4 book ai didi

ruby-on-rails - Capistrano 任务中奇怪的可变参数问题

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:33 25 4
gpt4 key购买 nike

您好 stackoverflow 专家,

我在使用 Capistrano 创建的任务中遇到了一个非常奇怪的问题。我正在尝试从命令行传递一个变量:

>> cap create_dir -s name_of_dir=mydir

task :create_dir do
printf("#{name_of_dir}")
if !(exists?(:name_of_dir)) then
name_of_dir = Capistrano::CLI.ui.ask("Name of dir to be created.")
end

full_path = "/home/#{name_of_dir}"
run "mkdir #{full_path}"

end

非常奇怪的是,当我执行 printf 时正确解析变量,但在以下命令中解析为空白(空)字符串。我真的找不到任何解释,我确定这不是一个令人震惊的错字或类似的东西?

我对 Ruby 的经验不如对 Java 和 PHP 的经验,我担心可能有一个奇怪的规则?

谢谢!!

最佳答案

一些建议:

  • 避免使用与内部任务变量同名的变量
  • 使用 fetch() 而不是处理 if 退出?否则……

这是代码

>> cap create_dir -s name_of_dir=mydir

task :create_dir do
printf("#{name_of_dir}")
directory = fetch(:name_of_dir) { Capistrano::CLI.ui.ask("Name of dir to be created.") }

full_path = "/home/#{directory}"
run "mkdir #{full_path}"
end

关于ruby-on-rails - Capistrano 任务中奇怪的可变参数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2335828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com