动作电缆正在工作而不是我推送数据

Action cable is working instead I push data

我目前正在学习可操作的东西,这很棒(而不是错误)。 我正面临一个奇怪的问题。

我的目标是为群组创建建立一个渠道。允许用户在不刷新的情况下看到新的。

此时,一切正常。但是当我尝试显示我的组的名称时,可操作的不再起作用。组创建得很好,但它们没有实时显示。所以我必须刷新页面才能看到它们。谁能帮我解决这个问题??

我的代码:

控制器(组):

  def index
    @company = current_user.company
    @groups = @company.groups
  end

频道(组):

class GroupsChannel < ApplicationCable::Channel
  def subscribed
    stream_from "groups"
  end

  def speak(data)
    group = Group.create(name: data['group'], company_id: 12)
    html = ApplicationController.render(partial: 'groups/group', local: {
      group: group
    })

    ActionCable.server.broadcast 'groups', group: html
  end 

end

咖啡文件(组):

App.groups = App.cable.subscriptions.create "GroupsChannel",
  connected: ->

    $(document).on 'keypress', '#group_name', (event) =>
      if (event.keyCode == 13)
        @speak(event.target.value)
        $('#group_name').val('')
        $('#MyNewGroup').modal('toggle')

  disconnected: ->
    # Called when the subscription has been terminated by the server

  received: (data) ->
    $('#groups_area').append(data.group)

  speak: (group) ->
    @perform 'speak', {group: group}

观看次数(指数):

  <div class="container">
    <h1 style="text-align:center; margin-bottom: 30px; margin-top: 10px;">Vos groupes</h1>
    <div id="groups_area">
      <%= render @groups%>
    </div>
  </div>

观看次数(_组)

        <div class="col-md-3">  
          <div class="panel panel-success">
            <div class="panel-heading">
              <h3 style="margin-top:0; text-align:center">


====================================Problem========================================
                <%= group.name %>

====================================Problem========================================
              </h3>
            </div>

            <div class="panel-body">
              test body
            </div>
          </div>
        </div>

因此,当我添加此行时 <%= group.name %>,前置操作不再起作用。

您的频道文件中似乎有错字。渲染部分时,您必须使用 locals,而不是 local。所以做以下更改:

html = ApplicationController.render(partial: 'groups/group', local: {
  group: group
})

local更改为locals:

html = ApplicationController.render(partial: 'groups/group', locals: {
  group: group
})