0

以下の 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
4

2 に答える 2