如何使用Action Cable订阅多个聊天室

时间:2016-07-15 14:50:31

标签: ruby-on-rails chat actioncable

我能找到的所有例子都订阅了一个单独的房间,但是如果我有房间A,B和C,我(作为用户)就在所有房间里。

这是一个房间http://edgeguides.rubyonrails.org/action_cable_overview.html#client-server-interactions-subscriptions

的示例

1 个答案:

答案 0 :(得分:-1)

可能这可以帮助link,在* .js.erb模板中你可以动态创建房间。

<% Chatroom.all.each do |chatroom| %>  

  App['room' + <%=chatroom.id%>] = App.cable.subscriptions.create({channel: 'MessagesChannel', room: <%=chatroom.id%>}, {  
  received: function(data) {
   $("[data-chatroom='" + this.chatroomId + "']").removeClass('hidden')
    return $("[data-chatroom='" + this.chatroomId + "']").append(data.message);
  },

  setChatroomId: function(chatroomId) {
    this.chatroomId = chatroomId
  }
});
<% end %>