以下の Rake タスクを取得しました。これは、アプリケーションで賭けを解決するために 1 日 1 回実行されます。しかし、単純化できると確信しているので、IF-THEN ステートメントを CASE ステムに置き換えることができます。
複数の IF ステートメントの実行には、CASE オプションを使用した同じプロセスよりも時間がかかると思います。あれは正しいですか?
IF-THEN から CASE オプションに変換する方法がわかりません..
task :settle => :environment do
@bets = Bet.where(:settle => false)
@bets.each do |bet|
if not bet.value.nil?
if bet.price.value > bet.value and bet.buy == true then
bet.profitloss = 10
bet.settle = true
bet.save
end
if bet.price.value < bet.value and bet.buy == false then
bet.profitloss = 10
bet.settle = true
bet.save
end
if bet.price.value > bet.value and bet.buy == false then
bet.profitloss = -10
bet.settle = true
bet.save
end
if bet.price.value < bet.value and bet.buy == true then
bet.profitloss = -10
bet.settle = true
bet.save
end
if bet.price.value = bet.value then
bet.profitloss = -10
bet.settled = true
bet.save
end
end
end
end