编写一个rails应用程序我有一个if语句,首先检查3个变量是否为nil,如果任何变量为nil则应该终止。
问题是variable_name.nil?语法仅检查变量是否为nil。我如何检查变量是否为零?本质上,如果变量不是零,我希望它返回'True'。
def my_status (product)
product_sales = product.line_items.total_product_sale.sum("quantity")
if (product.volume.nil? && product.volume2.nil? && product.volume.nil?)
if (product_sales >= product.volume) && (product_sales < product.volume2)
level1_status = 'Flipped'
elsif (product_sales >= product.volume2) && (product_sales < product.volume3)
my_status = "Flipped"
elsif (product_sales >= product.volume3)
my_status = "Flipped"
else
my_status = "In Play"
end
end
end
答案 0 :(得分:1)
如果您不必考虑三个变量中任何变量false
(与nil
相对)的可能性,那么:
[x, y, z].all?
答案 1 :(得分:0)
您可以直接对初始化变量执行if
语句,如果它不是nil则返回true(请注意,这也会测试真实性,只有在项不能返回false时才使用它):
if variable1 && variable2 && variable3
do things
end
与此伪代码有效:
if variable1 is not null AND variable2 is not null AND variable3 is not null
do things
end
虽然使用unless
语法来执行您正在执行的检查,但在rails中很常见,我建议您使用这种方法:
unless variable1.nil? || variable2.nil? || variable3.nil?
do things
end