Каков рекомендуемый способ решения следующих ситуаций:
Предположим, у меня есть модель с именем Cart
, которая имеет отношение 1-1 к модели Person
и тот же PK (идентификатор пользователя).
В методе index
моего cart_controller
я хочу проверить, существует ли Cart
для текущего пользователя.
Если я делаю Cart.find(the_user_id)
, а корзина не существует, то возникает исключение RecordNotFound
.
Я вижу два пути решения этой проблемы:
1. спасение от исключения
begin
@cart = Cart.find(the_user_id)
#more code here
rescue ActiveRecord::RecordNotFound
#the cart is empty message
end
2. использовать ActiveRecord # существует? Метод
if Cart.exists?(the_user_id)
@cart = Cart.find(the_user_id)
#more code here
else
#the cart is empty message
end
Из моих (ограниченных) знаний об обработке исключений я знаю, что не рекомендуется использовать исключения таким образом, но стоит ли каждый раз делать дополнительный запрос?