行动电缆订阅未考虑在内

时间:2019-01-14 13:20:26

标签: ruby-on-rails websocket actioncable

我正在使用实时聊天应用程序,但Action Cable无法正常工作。我遵循了documentation,但我必须缺少一些东西。

这是我的代码:

  #groups_channel.rb
    class GroupsChannel < ApplicationCable::Channel
     def subscribed
       stream_from "group_#{params[:group_id]}"
     end
    end



#<!-- app/views/groups/show.html.erb -->
<!-- ... -->
 <% content_for :after_js do %>
    <script>
    App['group_<%= @group.id %>'] = App.cable.subscriptions.create(
  { channel: 'GroupsChannel', group_id: <%= @group.id %> },
  { received: (data) => { 
        const messagesContainer = document.querySelector('.messages-tab-content');
        messagesContainer.insertAdjacentHTML('beforeend', data.message_box);
        scrollLastMessageIntoView();

    })
  </script>
<% end %>


   # app/models/message.rb
    class Message < ApplicationRecord
      after_create :broadcast_message
      # ...
     def broadcast_message
    ActionCable.server.broadcast("group_#{self.group.id}", {
      message_partial: ApplicationController.renderer.render(
         partial: "groups/message_box",
        locals: { message: self }
      ),
    })
     end
    end

这是控制台中的内容。 即使我在上面的行中强制进行电缆订阅,似乎也没有订阅。

enter image description here

任何线索都将非常有帮助。

0 个答案:

没有答案