0

日付をいくつかの条件と比較し、条件を満たす条件に基づいて特定の出力を返そうとしています。if私はこれらとelsifステートメントが好きではありません:

 def ugly_method
    if first_active_entitlement.try(:created_at) == nil
      "No timestamp on first active entitlement"
    elsif first_active_entitlement == nil
      "No Active Entitlement"
    elsif last_suspended_entitlement == nil 
      first_time_or_renewal(first_active_entitlement, start_date, end_date)
    elsif first_active_entitlement.try(:created_at) > last_suspended_entitlement.try(:suspended_at) && first_active_entitlement.try(:created_at) > start_date && first_active_entitlement.created_at < end_date
      "Restart"
    else
      first_time_or_renewal(first_active_entitlement, start_date, end_date)
  end

日付をさまざまな条件と比較しなければならなかった人はいますか? 私が行方不明になっている方が簡単な明らかなものはありますか?

4

1 に答える 1