Есть ли встроенная поддержка в рельсах для идиомы подстановки значений по умолчанию?

Я часто пишу код, чтобы обеспечить значение по умолчанию при обнаружении значения nil / empty.

Например:

category = order.category || "Any"
#  OR
category = order.category.empty? ? "Any" : order.category

Я собираюсь расширить попытку метод для обработки этой идиомы.

category = order.try(:category, :on_nill => "Any")
#  OR
category = order.try(:category, :on_empty=> "Any")

Мне интересно, есть ли в Rails / Ruby какой-либо метод для обработки этой идиомы?

Примечание:

Я пытаюсь устранить повторение || / или /? операторные идиомы.

По сути, я ищу эквивалент метода try для обработки сценариев замены по умолчанию.

Без метода try :

product_id = user.orders.first.product_id unless user.orders.first.nil? 

С помощью метода try :

product_id = user.orders.first.try(:product_id)

Легко реализовать общий подход для обработки этой идиомы, но я хочу убедиться, что я не изобретаю колесо заново.

13
задан Harish Shetty 2 September 2010 в 23:46
поделиться