我经常需要检查某个值是否为空,然后像这样写“无数据存在”:
@user.address.blank? ? "We don't know user's address" : @user.address
当我们有大约20-30个字段,我们需要处理这种方式,它变得难看。
我所做的是使用 or
方法扩展 String 类
class String
def or(what)
self.strip.blank? ? what : self
end
end
@user.address.or("We don't know user's address")
现在看起来好多了,但还是粗糙的
如何更好地解决我的问题。也许扩展 ActiveSupport class
或者使用 helper 方法或 Mixin 或者其他方法会更好。红宝石理念,你的经验和最佳实践可以告诉我什么。