【问题标题】:Assigning a variable based on existence of other variables in ruby 1.9根据 ruby​​ 1.9 中其他变量的存在来分配变量
【发布时间】:2016-01-07 16:04:49
【问题描述】:

我得到了修复 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 中的值
*** #<:configuration::namespaces::namespace:0x000000032a6040>

的未定义局部变量或方法 `var_two'

从未达到第一种情况。脚本总是转到 else 情况——即使var_one 包含一个字符串。

我该如何解决?

【问题讨论】:

  • var_to_be_used = (defined? var_one) ? var_one : var_two
  • 效果一样
  • 试试var_one.nil? ? var_two : var_one

标签: ruby variables conditional local webistrano


【解决方案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'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 2022-08-15
    相关资源
    最近更新 更多