If对象存在put对象的更清晰语法

时间:2014-01-17 22:17:24

标签: ruby-on-rails ruby

以下示例是否有更清晰的语法?显然,对于该示例来说,问题并不是太多,但是当方法调用和数组作为对象的一部分时,我理想地想要一个超级局部变量用于此对象,即“this”或其他东西。

obj? obj : ''

如果对象存在,则放置对象。否则什么都没有。

1 个答案:

答案 0 :(得分:1)

通常的Ruby-ish方法是短路OR:

obj || ''

请注意,如果obj可合法地false,则无法正常运行;在这种情况下,你最好明确地对obj.nil?进行测试。

如果您需要发送大型方法链并且任何结果可能是nil,请查看andand gem

obj.andand.somemethod.andand.anothermethod || ''

最后,如果您使用的是Rails,ActiveSupport会为您提供try method

obj.try(:somemethod).try(:anothermethod) || ''