簡體   English   中英

update_status 的分配分支條件大小太高。 [<1, 18, 8> 19.72/17]

[英]Assignment Branch Condition size for update_status is too high. [<1, 18, 8> 19.72/17]

當我嘗試調整 if user.completed 時,我該如何解決這個問題? == false 或在“完成”時添加,我會出錯

    def update_status
        status_cont = params[:status_cont]
        if user.completed? == false
          case status_cont
          when "waiting_email_confirm"
            user.waiting_email_confirm!
          when "email_confirmed"
            user.email_confirmed!
          when "ready_to_ship"
            user.ready_to_ship!
          when "shipped"
            user.shipped!
          when "canceled"
            user.canceled!
          when "completed"
            user.completed!
          end
        end
     end

您的case中有一種模式可用於簡化邏輯。 像這樣:

STATUS_CONTS = %w[canceled completed email_confirmed ready_to_ship shipped waiting_email_confirm]
private_constant :STATUS_CONTS

def update_status
  return if !user.completed?
  status_cont = params[:status_cont]
  raise "Unknown status_cont #{status_cont}" if !status_cont.in?(STATUS_CONTS)
  user.send("#{status_cont}!")
end

您可能希望以不同方式處理未知的status_cont值,但我不知道周圍的流程是如何工作的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM