多行三元运算符-不再有效。

时间:2018-10-04 09:55:44

标签: ruby-on-rails

我有一段代码使用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

1 个答案:

答案 0 :(得分:0)

您可能有一个采用第一个值的方法,然后使用switch或if / else块返回正确的值。 Ruby的case语句可以与范围进行比较,因此您可以根据需要添加月份。

有关方法https://stackoverflow.com/a/22700292/771564

,请参见此答案

也许是这样?

b3