我的分数属性从 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
然后列表继续,是否有更好的方法/方法来做这样的逻辑?
答案 0 :(得分:0)
可以从score
计算growth_rate
。
score = (30.0 - (user.growth_rate * 10)).floor
user.update(score: score) if user.score != score