У меня есть ответ json, который я запускаю через цикл в переключатели в форме.
При отправке все проходит, но при попытке сохранить выбор сохраняет только заголовок выбора ине значение параметра.
Запрос API:
@rates = Shipstation::Shipment.get_rates({
....
})
Форма (я пробовал все 4):
<% @rates.each do |rate| %>
<%= form.radio_button :shipping_rate_response, rate %> <%= rate %><br />
<% end %>
<% @rates.map do |rate| %>
<%= form.radio_button :shipping_rate_response, rate %> <%= rate %><br />
<% end %>
<% @rates.as_json.each do |rate| %>
<%= form.radio_button :shipping_rate_response, value: rate %> <%= rate %><br />
<% end %>
<% @rates.as_json.map do |rate| %>
<%= form.radio_button :shipping_rate_response, value: rate %> <%= rate %><br />
<% end %>
Когда я использую 'rate'
вместо простого rate
, он не пропустит параметры json и пропустит только заголовок.
Создать: попытка 1:
@shipping_rate.service_code = params["shipping_rate"]["shipping_rate_response"]["serviceCode"]
@shipping_rate.service_price = params["shipping_rate"]["shipping_rate_response"]["shipmentCost"]
попытка 2:
shipping_rate_choice = params["shipping_rate"]["shipping_rate_response"]
@shipping_rate.service_code = shipping_rate_choice["serviceCode"]
@shipping_rate.service_price = shipping_rate_choice["shipmentCost"]
Ответ при отправке формы:
..."shipping_rate"=>{"cart_id"=>"111", "shipping_address_id"=>"74", "shipping_rate_response"=>"{\"serviceName\"=>\"USPS Priority Mail - Package\", \"serviceCode\"=>\"usps_priority_mail\", \"shipmentCost\"=>7.42, \"otherCost\"=>0.0}"}, "commit"=>"Update Shipping rate", "id"=>"53"}
Что сохраняет:
serviceCode и serviceCost, в модель ... Названия значения, которое я хочу сохранить.
Я предполагаю, что что-то с radio_buttons вызывает это, ноне могу понять, что или почему.Я попытался to_json и as_json, чтобы посмотреть, поможет ли это параметрам, но они выглядят одинаково.
Когда я передаю @rates
в консоли, он не идет с косой чертой, и я могу определитьрезультаты.
Есть ли другой способ перебирать @rates и отображать их в форме в качестве вариантов для выбора того, который будет работать?
Я могу сделать следующее ::
<% @rates.each do |rate| %>
<%= form_for @shipping_rate do |form| %>
<%= rate %>
<%= form.hidden_field :service_code, value: rate["serviceCode"] %>
<%= form.hidden_field :service_price, value: rate["shipmentCost"] %>
<%= form.hidden_field :cart_id, value: @cart.id %>
<%= form.hidden_field :shipping_address_id, value: @shipping_address.id %>
<%= form.submit %>
<% end %>
<% end %>
Это работает, но я бы предпочел выбрать радио, а затем отправить, но пока это работает.Если у кого-то есть идеи, я пока оставлю это открытым