首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails 6-操作电缆问题

Rails 6-操作电缆问题
EN

Stack Overflow用户
提问于 2020-10-14 09:20:52
回答 3查看 469关注 0票数 0

我是Ruby的新手,我正在构建一个非常简单的Rails应用程序,它允许使用Action Cable的聊天类型的功能。我正在学习的教程没有使用Rails6,所以当我构建它的时候,它有一点不同,但是看起来除了下面的jQuery启动一个动作电缆连接之外,一切都在工作。我在cable.js文件上收到一个控制台错误,指出“未捕获ReferenceError:应用程序未定义”。这是第一次使用Action Cable和rails,所以任何帮助都是非常感谢的。

这是我的git存储库的链接:https://github.com/scottlandes1217/Hubbubb

cable.js

代码语言:javascript
运行
复制
// 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

代码语言:javascript
运行
复制
$(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);
        }
      }
    );
  });
});
EN

回答 3

Stack Overflow用户

发布于 2020-10-15 00:01:39

你看过作者的Github repo了吗?我不是jQuery方面的专家,但您似乎遗漏了一些东西。

票数 0
EN

Stack Overflow用户

发布于 2020-10-18 09:25:28

这仍然是一个不完整的答案:

我仍然有问题,因为所有的教程都是针对Rails 5.x的,cable.js文件来自rails 5时代。Rails6附带了一个app/javascripts/consumer.js文件,您应该删除或移动所有的app/assets/javascripts。

我认为我们不应该包括jQuery。它已被删除。

票数 0
EN

Stack Overflow用户

发布于 2020-10-21 15:10:35

在尝试了相当多的Action cable之后,我找不到一个简单的解决方案。我继续往前走,刚刚降级到了Rails5,一切看起来都很好。我知道这不是一个真正的答案,但至少我能够完成这个项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64345293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档