通常,我需要检查某个值是否为空,并这样写“无数据存在”:
@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
或使用辅助方法或mixins或其他任何方法。红宝石的思想,您的经验和最佳实践可以告诉我。