例如,在 10:36 的https://www.youtube.com/watch?v=n0WUjGkDFS0中,他提到了创建多个频道的能力,但实际上如何做到这一点?
根据Rails 5 ActionCable 从 URL 参数建立流,可以定义变量并将其作为参数传递,例如:
def subscribed
stream_from "room_channel_#{params[:roomId]}"
end
但是在此处传递数据之前的javascript文件中,如何从页面传递数据?以下示例呈现错误,因为可能是在加载文档之前定义了电缆。
App.room = App.cable.subscriptions.create { channel: "RoomChannel", roomId: document.getElementById("message_text").getAttribute("data-room")}
那么,如果确实成功地将文档中的数据获取到这里的变量中,并将其传递给 stream_from 方法,那么最后,正确的通道如何传递给 perform 方法以用于广播作业?
def perform(message)
ActionCable.server.broadcast 'room_channel_???', message: render_message(message) #, roomId: roomId
end
谢谢!