-2

Railsアプリを書く私は最初に3つの変数がnilでないかどうかをチェックし、変数のいずれかがnilであれば終了する必要があるifステートメントを持っています。

問題は variable_name.nil ですか? 構文は、変数が nil かどうかのみをチェックします。変数が 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
4

2 に答える 2

1

false3 つの変数のいずれかが( ではなくnil) である可能性を考慮する必要がない場合は、次のようになります。

[x, y, z].all?
于 2013-07-30T18:22:55.630 に答える
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実行しているチェックの種類に構文を使用することはレールでは一般的ですが、あなたの場合はこれをお勧めします:

unless variable1.nil? || variable2.nil? || variable3.nil?
  do things
end
于 2013-07-30T18:12:31.813 に答える