From 71a1ef7758a1bc08cac2bc2b48a373d807e95d69 Mon Sep 17 00:00:00 2001 From: Alberto Vena Date: Tue, 14 May 2019 14:52:32 +0200 Subject: [PATCH] Avoid JSON serializing Float::INFINITY Float::Infinity serialization is broken with Oj gem, see https://github.com/solidusio/solidus/pull/2495#issuecomment-365352792 This commit makes sure we are always nullifying total_on_hand before passing trying to serialize it, if it is a Float::Infinite. --- api/app/views/spree/api/products/_product.json.jbuilder | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/api/app/views/spree/api/products/_product.json.jbuilder b/api/app/views/spree/api/products/_product.json.jbuilder index 018ff3c23e6..4984a4107a1 100644 --- a/api/app/views/spree/api/products/_product.json.jbuilder +++ b/api/app/views/spree/api/products/_product.json.jbuilder @@ -2,7 +2,8 @@ @product_attributes ||= product_attributes json.cache! [I18n.locale, @current_user_roles.include?('admin'), current_pricing_options, @product_attributes, @exclude_data, product] do - json.(product, *@product_attributes) + json.(product, *(@product_attributes - [:total_on_hand])) + json.total_on_hand(total_on_hand_for(product)) json.price(product.price_for(current_pricing_options).try(:to_d)) json.display_price(product.price_for(current_pricing_options).to_s)