【发布时间】:2011-04-07 14:26:54
【问题描述】:
我经常编写代码来在遇到 nil/empty 值时提供默认值。
例如:
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)
很容易实现一个通用的方法来处理这个习语,但我想确保我不会重新发明轮子。
【问题讨论】:
标签: ruby-on-rails ruby