我经常编写代码以在遇到nil /空值时提供默认值。在默认值替换习语中,是否在内建的rails支持中?
E.g:
category = order.category || "Any"
# OR
category = order.category.empty? ? "Any" : order.category
我将延长try
方法来处理这个成语。
category = order.try(:category, :on_nill => "Any")
# OR
category = order.try(:category, :on_empty=> "Any")
我想知道如果Rails/Ruby有一些方法来处理这个习惯用法?
注:
我试图消除||/or/?
运营商基于成语重复。
本质上,我正在寻找一个等效的try
方法来处理默认的替代方案。
没有try
方法:
product_id = user.orders.first.product_id unless user.orders.first.nil?
随着try
方法:
product_id = user.orders.first.try(:product_id)
这是很容易实现一个通用的方法来处理这个成语,但我要确保我不重新发明轮。
超酷的答案! – kamal 2016-08-08 04:08:40