Я реализовал ActionCable для обновления представления (erb) для определенных действий. Все это прекрасно работает при постановке, но не в производстве.
my cable.yml
development:
adapter: redis
url: redis://localhost:6379
#
test:
adapter: redis
url: redis://localhost:6379
#
production:
adapter: redis
url: redis://localhost:6379
Поскольку вы не видите настройки для постановки, так как она использует адаптер asyn c, и это работает без проблем. Для производства с использованием Redis и это создает проблемы
Представление клиента отображается на терминалах внутри магазина, а HTML .erb выглядит так
Normal HTML to render and at the bottom
<script type="text/javascript">
App.messages = App.cable.subscriptions.create('TvNotificationsChannel', {
received: function (data) {
if (data['tv'] == <%= @tv.pincode %>) {
play_sound();
setTimeout(function(){
location.reload(true);
}, 1500);
}
}
});
</script>
, так что если широковещательное сообщение равно TV.Pincode воспроизводит звук и перезагружает экран. Снова работаем без проблем при постановке, но в производственной среде мы иногда получаем эту ошибку
App not defined in content
В соответствии с документацией мы должны использовать redis в производственной среде, но кажется, что работает адаптер asyn c (промежуточная конфигурация).
Любые советы / советы приветствуются, как решить эту проблему.