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

Bru*_*uno 0 ruby-on-rails

有没有办法编写这段代码而不用写两次foo这个词?

foo? foo : 0
Run Code Online (Sandbox Code Playgroud)

在我的情况下,foo是这样的事情vehicle.maintenance.starting_odometer你可以想象,如果我必须检查这些对象的存在,代码变得相当冗长和丑陋.

Pin*_*nyM 5

当然,你可以使用||:

foo || 0
Run Code Online (Sandbox Code Playgroud)

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