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
值,但我不知道周围的流程是如何工作的。
当我尝试条件化 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
值,但我不知道周围的流程是如何工作的。