У меня есть контроллер продуктов на моем сайте, и я решил использовать команду rescue
в rails, чтобы люди не могли войти в products / 500 и получить сообщение об ошибке rails для продукта, который не существует.,Вот как выглядит мой код
def show
@product = Product.find(params[:id])
@title = @product.name
rescue ActiveRecord::RecordNotFound
redirect_to root_path, :notice => 'No such product'
end
, но потом я увидел другие места, где люди используют begin
rescue
и else
.это код ниже лучшей практики.это работает в обе стороны, но я хотел бы знать, в чем разница между этими двумя кодами
def show
begin
@product = Product.find(params[:id])
rescue ActiveRecord::RecordNotFound
redirect_to root_path, :notice => 'No such product'
else
@title = @product.name
end
end