当您想要将频道与正在查看的页面联系起来时,好奇将ActionCable与Turbolinks一起使用的最佳做法。
这是一个经典的例子,当然,如果您有一篇包含评论的文章 - 如何仅在视图中传输与该文章相关的评论,然后在查看其他文章时订阅其他频道?
我已经玩过在JQuery上使用turbolinks:loaded
事件,但是无法弄清楚要将它链接到什么。我想每次都重新订阅吗?如果不重新加载JS,怎么可能呢?
答案 0 :(得分:3)
我通过做这样的事情来管理:
(直播任务输出)
$(document).on 'turbolinks:load', -> # use page:change if your on turbolinks < 5
if document.getElementById("task-output") # if a specific field is found
App.task = App.cable.subscriptions.create { channel: "TaskChannel", task_id: task_id },
received: (data) ->
# do something with your data
else if App.task # if I'm not on the page where I want to be connected, unsubscribe and set it to null
App.task.unsubscribe()
App.task = null
答案 1 :(得分:0)
另一种方法是
在我们的博客上,您会在how to enable action cable on specific pages上找到更详细的帖子。