我有一段代码使用Ruby Date类在特定日期参数内输出数据。目前,我有一个三元运算符,即如果当前月份大于或等于9月,则输出500_000,对于其他月份则输出400_000。
让我们说,如果当前月是10月或更长时间,我现在想输出800_000,但要保持9月为500_000,一切都保持为400_00。
我的猜测是,我将不得不放弃三元运算符,并建立一个大型的if else块?有没有一种方法可以使我的代码不会太长?
september = '01-09-2018'.to_date
october = '01-10-2018'.to_date
monthly_target_current = start_date_current_week.to_date >= september ? 500_000 : 400_000
monthly_target_prev_1 = start_date_last_week.to_date >= september ? 500_000 : 400_000
monthly_target_prev_2 = start_date_week_last_2_weeks.to_date >= september ? 500_000 : 400_000
答案 0 :(得分:0)
您可能有一个采用第一个值的方法,然后使用switch或if / else块返回正确的值。 Ruby的case语句可以与范围进行比较,因此您可以根据需要添加月份。
有关方法https://stackoverflow.com/a/22700292/771564
,请参见此答案也许是这样?
b3