除非重新加载页面,否则ActionCable通道不会连接

时间:2019-02-13 01:05:49

标签: ruby-on-rails-5 turbolinks actioncable

如果我手动刷新页面,那条电缆会很好用,但是如果我导航到该页面,它将永远不会开始播放。

正常工作后,我在Rails控制台中看到了这一点:

ChecklistPdfChannel is transmitting the subscription confirmation
ChecklistPdfChannel is streaming from checklist_pdf_2-5a-ntiasohen-gattopuin

这是咖啡稿:

document.addEventListener 'turbolinks:load', ->
  if !App.presence
    App.presence = App.cable.subscriptions.create({
      channel: 'ChecklistPdfChannel',
      issueable_id: window.location.pathname.split('/').splice(2,1).toString()
    },
      connected: ->
      disconnected: ->
      received: (data) ->
        console.log(data)
        $('#pdf_status').html "#{data.html}"
  )
return

我尝试了以下操作:

  • 添加了元标记:<meta name="turbolinks-cache-control" content="no-cache">
  • 在布局中的资产调用上添加了'data-turbolinks-track': 'reload'

在开发和暂存/生产(Heroku)中,行为都是相同的。

Rails 5.2.2,ActionCable 5.2.2,Turbolinks 5.2.0

1 个答案:

答案 0 :(得分:0)

所以我能够使它起作用的唯一方法是在需要电缆有效的页面上添加此meta标签:

<meta name="turbolinks-visit-control" content="reload">