Опрос в ES6 и Rails - PullRequest
       7

Опрос в ES6 и Rails

0 голосов
/ 05 декабря 2018

Что я делаю: я пытаюсь создать простой механизм опроса с ES6.

Оптимально, он должен обновлять частичное на странице index каждые 5 секунд.

Не работаетЖурналы пишут, что шаблон был обработан, но в браузере ничего не происходит.

app / javascript / packs / polls.js.erb:

var sleep = time => new Promise(resolve => setTimeout(resolve, time))
var poll = (promiseFn, time) => promiseFn().then(
             sleep(time).then(() => poll(promiseFn, time)))

poll(() => new Promise(() => {
  fetch('/shows/refresh_results', {
  method: 'GET'

  })//.then(response => {
    // document.getElementById('top-shows-table-container').innerHTML = ("<%= j render partial: 'shows/top_shows_table' %>");
    // })
}), 5000)

app / controllers / application_controller.rb:

class ShowsController < ApplicationController
  def index
    @shows = Shows::OrderedByAverageReviewsScoreQuery.new.call
  end

  def refresh_results
    @shows = Shows::OrderedByAverageReviewsScoreQuery.new.call

    respond_to do |format|
      format.js
    end

    # render :index # this one doesn't work either
  end
end

app / views / shows / refresh_results.js.erb:

$('#top-shows-table-container').html("<%= render 'top_shows_table' %>"); 
CommentPoller.poll();

По данным журналов, последний файл вызывается.Но со страницей в браузере ничего не происходит.

Started GET "/shows/refresh_results" for 127.0.0.1 at 2018-12-05 03:06:06 +0300
Processing by ShowsController#refresh_results as */*
  Rendering shows/refresh_results.js.erb
  Rendered shows/refresh_results.js.erb (0.5ms)
Completed 200 OK in 6ms (Views: 3.6ms | ActiveRecord: 0.0ms)

Я также попытался вставить .erb-код непосредственно в .polls.js, что тоже не сработало.В настоящее время это закомментировано.Если я раскомментирую его, он выдаст эту ошибку:

ERROR in ./app/javascript/packs/polls.js.erb
Module build failed: Error: rails-erb-loader failed with code: 1
    at ChildProcess.<anonymous> (/home/.../projects/leaderboard-challenge/node_modules/rails-erb-loader/index.js:125:16)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:920:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:230:5)
...