Каков рекомендуемый способ решения следующих ситуаций:
Предположим, что у меня есть модель под названием 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
Из моих (ограниченных) знаний об обработке exeption я знаю, что не рекомендуется использовать исключения таким образом, но делает дополнительный запрос каждый раз, когда он стоит?