0

我得到了修复 webistrano 安装的工作,现在我陷入了收到收据的情况,其中以下任务在从 ruby​​ 1.8 更新到 ruby​​ 1.9.3 后中断

if defined? var_one != nil
  var_to_be_used = var_one
else
  $logger.info(var_one)
  var_to_be_used = var_two
end

我已经确定(通过添加上述日志条目)var_onevar_two保持预期值。例如,当我希望var_one保持我得到以下日志的值时:

** var_one 中的值
*** #<Capistrano::Configuration::Namespaces::Namespace:0x000000032a6040> 的未定义局部变量或方法 `var_two'

第一种情况永远都达不到。脚本总是转到 else 情况——即使在var_one持有字符串时也是如此。

我该如何解决?

4

1 回答 1

1

我解决了

var_to_be_used ||= var_one rescue var_to_be_used ||= var_two rescue nil

再次访问通过var_one.nil?引起undefined local variable or method 'var_one'

于 2016-01-07T16:48:28.833 回答