Ich lerne gerade ActionCable, das ist fantastisch (stattdessen die Fehler). Und ich stehe vor einem seltsamen Problem.Aktionskabel funktioniert statt ich drücke Daten
Mein Ziel ist es, einen Kanal für die Gruppenerstellung zu erstellen. Um dem Benutzer zu ermöglichen, neue ohne Aktualisierung zu sehen.
An diesem Punkt funktioniert alles super. Aber wenn ich versuche, den Namen meiner Gruppen anzuzeigen, funktioniert das ActionCable nicht mehr. Gruppen werden gut erstellt, aber sie werden nicht in Echtzeit angezeigt. Also muss ich die Seite aktualisieren, um sie zu sehen. Kann mir jemand zu diesem Problem helfen ??
Mein Code:
Controller (Gruppen):
def index
@company = current_user.company
@groups = @company.groups
end
Channel (Gruppen):
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
Coffee-Datei (Gruppen):
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}
Views (Index):
<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>
Views (_Konzerneffekte)
<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>
Also, wenn ich diese Zeile <% = group.name%> hinzufügen, die prepend Aktion funktioniert nicht mehr.
cool !! Vielen Dank @Laith Azer, du rettest meine Nacht !! –
Sie sind herzlich willkommen :) –
Guter Fang @ LaithAzer –