我在数据库中有2列( column_a 和 column_b ) - 两者都是字符串。我需要测试,如果 column_a 或 column_b 或两者都是 nil 或空白。
最好的方法是什么? 我目前正在做的是我正在测试 column_a 然后 column_b - 问题是我需要为这两个变量运行相同的代码。
测试上述内容的最有效方法是什么?
答案 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?