如何测试一个,两个或两个变量是空白还是空?

时间:2014-02-15 20:37:04

标签: ruby-on-rails ruby

我在数据库中有2列( column_a column_b ) - 两者都是字符串。我需要测试,如果 column_a column_b 或两者都是 nil 空白

最好的方法是什么? 我目前正在做的是我正在测试 column_a 然后 column_b - 问题是我需要为这两个变量运行相同的代码。

测试上述内容的最有效方法是什么?

4 个答案:

答案 0 :(得分:1)

您可以使用任意数量的变量

[column_a, column_b].collect(&:to_s).all? :empty?

或者至少有一个必须为零或空白

[column_a, column_b].collect(&:to_s).any? :empty?

答案 1 :(得分:1)

我认为最好的方法是在模型中定义自定义方法

def a_and_b
    (columna.blank? || columna.nil?).to_i + (columnb.blank? || columnb.nil?).to_i*2
end

可能的值:
 0:无空或空白
 1:空或空白
 2:b空或空白
 3:空或空白

这样打电话:

record.a_and_b

答案 2 :(得分:0)

一种方法是映射这些值的数组。 E.g。

[ column_a, column_b ].map { |x| x.nil? || x.empty? }

你最终会得到一系列布尔值,告诉你哪些是零/空。然后,您可以询问结果问题是否为空(result.any? / result.all?)。

答案 3 :(得分:0)

[column_a, column_b].all?{|e| e.to_s.strip.empty?}

或者在Rails中:

column_a.blank? && column_b.blank?