【发布时间】:2017-10-10 09:42:50
【问题描述】:
我喜欢 Ruby 中的条件赋值语法并一直使用它:
x = this_var || that_var
现在我正在使用几个 API,它们为不存在的值返回空字符串。由于空字符串在 Ruby 中的计算结果为 true,因此我不能再使用上面的语法来设置默认值。当我有几个“级别”的默认值时,情况会变得更糟,例如“如果此 var 不存在,请将其设置为该 var,如果该 var 也不存在,请将其设置为另一个 var”。所以我最终这样做了:
x = if this_var.present?
this_var
elsif that_var.present?
that_var
else
last_resort
end
.present? 方法有帮助,但作用不大。我如何以更简洁的方式编写这样的东西?
我正在使用 Rails 4,因此欢迎使用 Rails 方法作为答案:)
谢谢
【问题讨论】:
-
如果您使用的是库,请说明清楚。
-
@sawa:值得称赞的是,哪些东西是 rails 而不是标准 ruby 并不总是很明显。你不能指望他为他的 gemfile 中的所有 gem 添加标签。
-
@sawa 是的,我正在使用 Rails,但问题并不意味着我需要一个 Rails 方法来做我想做的事情,如果有一个原生的 Ruby 方法。我只是碰巧在我的示例中使用了 rails 方法。无论如何我都会更新问题。
标签: ruby-on-rails ruby