У меня есть атрибут оценки, начиная с 30 баллов и хочу, чтобы вычитал 1 балл по определенным критериям, которые он встречает. Вот как я пишу это в долгом пути:Попытка рефакторинга моего рубинового кода
case
when user.growth_rate >= 0.1 && user.growth_rate <= 0.11
user.update(score: 29) if user.score != 29
when user.growth_rate >= 0.11 && user.growth_rate <= 0.12
user.update(score: 28) if user.score != 28
end
И этот список можно продолжить, Есть ли лучший способ/метод сделать логику, как это?
Решение может быть умножением с округлением до целых чисел, а затем, возможно, вычесть. '(30.0 - (user.growth_rate * 30)). Round' – sschmeck
Что делать, если' user.growth_rate' точно равно '0.11'? Просто пропустите это? – mudasobwa
@mudasobwa Отсутствует знак равенства, я думаю, – sschmeck