Rails成语为.present?和.any?

chu*_*g2k 8 ruby ruby-on-rails

是否有一个Rails/Ruby习惯用于检查枚举是否同时存在且具有非nil值?

如果我尝试这样做nil.any?,我会遇到错误,我总是这样做if foo && foo.any?.

Nik*_* B. 9

您可以使用tryActiveSupport提供的方法:

obj.try(:any?)
Run Code Online (Sandbox Code Playgroud)

这将评估nilif obj.nil?falseif obj是否为空集合,因此在两种情况下,它将在布尔上下文中计算为虚假值.