前提・実現したいこと
使用言語はrubyとjavascripuです。rails でchatのアプリを作っているのですがaction cableを使い非同期通信を行いたいのですがうまく表示されずチャット画面情に非同期の状態でメッセージではなくundfindと表示されます。
aとbでチャットを行っていてaがおはようと送るとbの方の画面は更新しないでundefindと表示されるので情報の中身だけいってないと思われます。
発生している問題・エラーメッセージ
console上ではerrorはないのですがブラウザ上でundefindと表示される
該当のソースコード
ruby javascript class MessageChannel < ApplicationCable::Channel def subscribed stream_from "message_channel" end def unsubscribed # Any cleanup needed when channel is unsubscribed end end @message = @room.messages.new(message_params) if @message.save ActionCable.server.broadcast 'message_channel', content: @message redirect_to room_messages_path(@room) else @messges = @room.messages.includes(:user) import consumer from "./consumer" consumer.subscriptions.create("MessageChannel", { connected() { // Called when the subscription is ready for use on the server }, disconnected() { // Called when the subscription has been terminated by the server }, received(data) { const html = `<p>${data.content.text}</p>`; const messages = document.getElementById('messagesid'); const newMessage = document.getElementById('message_content'); messages.insertAdjacentHTML('afterbegin', html); newMessage.value=''; } }); <div class="messages"> <div class="messages" id="messagesid">
試したこと
検証してidの確認
補足情報(FW/ツールのバージョンなど)
Rails 6.0.3.3
あなたの回答
tips
プレビュー