Обновите мое представление в зависимости от состояния моего вызова API в приложении rails / реакции - PullRequest
1 голос
/ 02 июня 2019

У меня есть приложение rails, настроенное в качестве интерфейса.С моего контроллера рельсов я звоню в браузер API.Через Watir и некоторые «путы» внутри моего контроллера я могу получить статус моего звонка внутри терминала.Например, в моем терминале я буду видеть «Загрузка 1% ...», «Загрузка 10%» и т. Д., Пока это не будет сделано.Я пытаюсь показать это значение моему внешнему приложению.Совершенно новый для рельсов и не уверен, с чего начать.Чтобы поразить метод call_api (имя пользователя), я делаю Ajax-вызов с кнопки на моем внешнем интерфейсе.Пока все работает хорошо.Единственное, что я хотел бы добавить, это статус моего звонка на стороне клиента.

Я пытался использовать gem gon, но проблема в том, что все мое приложение основано на моем корневом маршруте "/", поэтому, если, например, мой метод индекса такой, а мой метод call_api такой

  def index
     @status = "started"
     gon.watch.status = @status
   end
  def call_api(username)
    @status = "new value for test"
    gon.watch.status = @status
    until @status == "Finished"
      @status = @browser.span(class: "monoFont").text
      puts "status" + @status
      sleep 1
    end
   end

Когда я захожу в консоль своего браузера и пытаюсь открыть console.log (gon.status), я все равно получаю значение «запущен», так как мое приложение все еще находится на индексном маршруте.Вероятно, есть лучший способ.Любая помощь и рекомендации о том, как поступить, очень ценится.Спасибо

1 Ответ

0 голосов
/ 02 июня 2019

Если я не ошибаюсь, вам необходимо постоянно обновлять статус, пока API выполняет некоторые операции в Интернете.Поэтому я думаю, что вам может понадобиться веб-сокет или что-то в этом роде, потому что ваш API постоянно работает и вам нужно обновление в реальном времени.Взгляните на веб-сокет.

...