Не совсем уверен, как задать вопрос в качестве заголовка ...
но это ситуация и проблема:
Я беру Заказы из API. Принимая заказ, я хочу добавить стоимость доставки в зависимости от веса товара. Я использую API от марок для получения ставок и хочу взимать самую низкую цену, доступную из ответа API марок.
Вот моя попытка получить скорость (которая работает для отображения на внешнем интерфейсе, но, кажется, не работает в следующем) ....
...
rates = Shipstation::Shipment.get_rates({...})
cheapest_rate = rates.min_by { |rate| rate['shipmentCost'] }
cheapest_rate_number = cheapest_rate["shipmentCost"]
ошибка:
TypeError (no implicit conversion of String into Integer) on line 75
строка 75: cheapest_rate = rates.min_by { |rate| rate['shipmentCost'] }
Цель состоит в том, чтобы взять наименьшее доступное число, используйте его для @order.shipping_rate
, чтобы затем использовать для расчета общей суммы платежа для обработки.
Ответ @rates
JSON выглядит следующим образом:
[{"serviceName"=>"USPS First Class Mail - Package", "serviceCode"=>"usps_first_class_mail", "shipmentCost"=>2.66, "otherCost"=>0.0}, {"serviceName"=>"USPS Priority Mail - Package", "serviceCode"=>"usps_priority_mail", "shipmentCost"=>6.95, "otherCost"=>0.0}]
, но с несколькими вариантами.
Как мне взять мой текущий код или новый код, чтобы получить наименьшее целое число из \"shipmentCost\"
, определить его, а затем передать его в модель без ошибки сверху