Как я могу обновить все цены с помощью jQuery и AJAX? - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь создать динамическую таблицу, которая использует AJAX для получения рассчитанных цен со стороны Rails для арендуемых единиц. Каждая арендованная единица имеет информацию о ценах в формате JSON (/companies/:id/locations/:id/units/:id/price.json), которую я получаю.

Моя проблема в функции, которая устанавливает text для каждого устройства. Похоже, что он только загружает JSON для первого блока, а все следующие цены после него устанавливаются на первый блок

Request URL: /storage_companies/2/storage_locations/4/storage_units/10/price
{id: 10, monthly_cost: 7.25, total_price: 87}

В UnitController я настроил метод цены для вывода информации о цене в JSON:

def price
    respond_to do |format|
      format.json { render json: @storage_unit, methods: [:total_price], only: [:id, :monthly_cost, :total_price]}
    end
  end

и маршрут:

resources :companies do
   resources :locations do
     resources :units do
       member do
         get :price
       end
     end
   end
end

Как я могу реорганизовать это, чтобы перебрать все units и установить text?

$(function(){
  var CompanyId = $('.storage_company').data('params-id');
  var LocationId = $('.select_location').data('params-id');
  var UnitId = $('.select_unit').data('params-id');

  $.getJSON(`/companies/${CompanyId}/locations/${LocationId}/units/${UnitId}/price`, callbackFuncWithData);

  function callbackFuncWithData(data){
    $(".monthly_estimated_price").text("$" + data.monthly_cost.toFixed(2));
    $(".total_estimated_price").text("$" + data.total_price.toFixed(2));
  };
});

Обновление

$.getJSON("/prices", function(data){
    $.each(data, function (index, value) {
      var price = value;
      $(`.select_unit[data-params-id="${price.id}"]`).each(function(){
        $(".monthly_estimated_price").text("$" + price.monthly_cost);
        console.log(price)
      });
    });
  });

Я думаю, что я почти там, но все еще не до конца понимаю, как итерировать и устанавливать их динамически. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...