如果语句越来越长,Rails应该很简单

时间:2013-05-13 18:49:19

标签: ruby-on-rails

有没有办法在不写两次foo的情况下编写这段代码?

foo? foo : 0

在我的情况下,foo类似于vehicle.maintenance.starting_odometer,所以你可以想象如果我必须检查这些对象的存在,那么代码会变得非常冗长和丑陋。

1 个答案:

答案 0 :(得分:5)

当然,您可以使用||

foo || 0

析取运算符(称为or||)首先查看左侧元素。如果真实(不是nilfalse)它返回。否则,它会评估并返回右侧元素。三元运算符的工作方式相同,只是它允许您指定一个不同的值来代替原始的“左手”元素。