如何验证许多变量

时间:2018-07-11 15:06:03

标签: ruby-on-rails ruby

我想检查ruby中许多变量的状态。

但比

更优雅
if (@op.wash == true || @op.wash == false) && (@op.communication == true || @op.communication == false)

它应该看起来像这样:

if [@op.wash, @op.communication] == [false, nil]

但这不起作用。有任何想法吗?

1 个答案:

答案 0 :(得分:2)

  

如果所有这些变量都等于nil或false,则运行某些东西

这很简单

if [@op.wash, @op.communication].all?{|v| [false, nil].include?(v) }

if ([@op.wash, @op.communication] - [false, nil]).empty?

或其他几十种方式。在这种情况下,无障碍.none?可能无法被击败:

if [@op.wash, @op.communication].none?