动作电缆正在工作而不是我推送数据
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
})
我目前正在学习可操作的东西,这很棒(而不是错误)。 我正面临一个奇怪的问题。
我的目标是为群组创建建立一个渠道。允许用户在不刷新的情况下看到新的。
此时,一切正常。但是当我尝试显示我的组的名称时,可操作的不再起作用。组创建得很好,但它们没有实时显示。所以我必须刷新页面才能看到它们。谁能帮我解决这个问题??
我的代码:
控制器(组):
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
})