根据 ruby 1.9 中是否存在其他变量来分配变量
Assigning a variable based on existence of other variables in ruby 1.9
我得到了修复 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_one
和 var_two
保持预期值。
例如,当我希望 var_one
保留我得到以下日志的值时:
** value in var_one
*** undefined local variable or method `var_two' for #<Capistrano::Configuration::Namespaces::Namespace:0x000000032a6040>
第一种情况永远不会发生。脚本总是转到其他情况 - 即使 var_one
包含一个字符串。
我该如何解决?
我用
解决了
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'
。
我得到了修复 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_one
和 var_two
保持预期值。
例如,当我希望 var_one
保留我得到以下日志的值时:
** value in var_one
*** undefined local variable or method `var_two' for #<Capistrano::Configuration::Namespaces::Namespace:0x000000032a6040>
第一种情况永远不会发生。脚本总是转到其他情况 - 即使 var_one
包含一个字符串。
我该如何解决?
我用
解决了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'
。