Я немного новичок в Ruby и создаю довольно простое приложение Rails, которое позволяет использовать функции чата с помощью Action Cable. В руководстве, которому я следую, не используются рельсы 6, поэтому, когда я его создаю, он немного отличается, но, похоже, на данный момент все работает, кроме приведенного ниже jQuery для запуска подключения Action Cable. Я получаю консольную ошибку, в которой говорится, что Uncaught ReferenceError: приложение не определено в файле cable.js. Это первый случай использования кабеля Action Cable и направляющих, поэтому любая помощь очень ценится.
Вот ссылка на мой репозиторий git: https://github.com/scottlandes1217/Hubbubb
cable.js
// Action Cable provides the framework to deal with WebSockets in Rails.
// You can generate new channels where WebSocket features live using the `rails generate channel` command.
//
//= require action_cable
//= require_self
//= require_tree ./channels
(function() {
this.App || (this.App = {});
App.cable = ActionCable.createConsumer();
}).call(this);
forum_channel.js
$(function() {
$('[data-channel-subscribe="forum"]').each(function(index, element) {
var $element = $(element),
forum_id = $element.data('forum-id')
messageTemplate = $('[data-role="message-template"]');
$element.animate({ scrollTop: $element.prop("scrollHeight")}, 1000)
App.cable.subscriptions.create(
{
channel: "ForumChannel",
forum: forum_id
},
{
received: function(data) {
var content = messageTemplate.children().clone(true, true);
content.find('[data-role="user-avatar"]').attr('src', data.user_avatar_url);
content.find('[data-role="message-text"]').text(data.message);
content.find('[data-role="message-date"]').text(data.updated_at);
$element.append(content);
$element.animate({ scrollTop: $element.prop("scrollHeight")}, 1000);
}
}
);
});
});