我的 app/assets/javascripts/channels 文件夹中有一个 messages.js.erb 文件,它应该生成代码以从数据库中获取每个聊天室并为该聊天室创建频道订阅。
这是我的 messages.js.erb 文件
//**app/assets/javascripts/channels/messages.js.erb**
$(document).on('turbolinks:load', function() {
submitNewMessage();
});
<% 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 %>
function submitNewMessage(){
//console.log(uid);
$('textarea#message_content').keydown(function(event) {
if (event.keyCode === 13) {
var msg = event.target.value;
var chatroomId = $("[data-chatroom]").data().chatroom;
var uid = $('#uid').val();
//console.log(uid);
App['room' + chatroomId].setChatroomId(chatroomId); …Run Code Online (Sandbox Code Playgroud) javascript ruby-on-rails precompile asset-pipeline actioncable