CableReady (Rails) Базовый случай, дающий загадочное сообщение об ошибке

cable_ready 4.5.0 рельсы 6.1.4.1 рубин 3.0.2p107

Это простой пример из основного руководства (https://www.youtube.com/watch?v=F5hA79vKE_E). Я подозреваю, что получаю ошибку, потому что либо cable_ready, либо rails немного изменились и создали крошечную несовместимость.

Я получаю эту ошибку в консоли JS:

Он срабатывает, когда в моем контроллере я прошу кабель готов:

      cable_ready["timeline"].console_log(message: "***** cable ready post created")

Что приводит к моему timeline_channel:

      received(data) {
    console.log("******** Received data:", data.operations)
    if (data.cableReady) CableReady.perform(data.operations)
  }

Моя интерпретация заключается в выполнении этой строки в строке 13 cable_ready.js:

        operations.forEach(function (operation) {
    if (!!operation.batch) batches[operation.batch] = batches[operation.batch] ? ++batches[operation.batch] : 1;
  });

Находит что-то в полученных данных, что ему не нравится.

Вот где мой след заканчивается. Может ли кто-нибудь увидеть, что я делаю неправильно, или сказать, какой еще код вы бы хотели, чтобы я включил?

1 ответ

Решение: понизьте версию библиотеки javascript cable_ready.

Ранее (может быть, год назад) я делал это руководство , используя CableReady 4.5, Ruby 2.6.5 и Rails 6.0.4, и тогда, как и сегодня, оно работало как шарм.

Но сегодня я снова попробовал это руководство в дублирующем проекте - те же версии CR, Ruby и Rails, и теперь я получаю ошибки консоли Java, похожие на ваши.

      TypeError: undefined is not a function (near '...operations.forEach...')
perform -- cable_ready.js:13
received -- progress_bar_channel.js:8

Я посмотрел на вывод yarn listи увидел, что версия cable_ready 5.0.0-pre8 в плохом проекте и 5.0.0-pre1 в хорошем проекте. Понижение может быть выполнено с помощью yarn add cable_ready@^5.0.0-pre1в папке плохого проекта, и теперь оба проекта работают.

К сведению других новичков, таких как я, пытающихся понять, как работает CableReady: в этом руководстве приводится еще один пример CableReady, который также был исправлен таким же образом.

Другие вопросы по тегам