現在、ruby on railsにてactioncableを用いた動的なチャットを作成しています。
チャット機能は十分とは言えませんが、機能としては大体完成しました。
LINEのように送信したメッセージ、受信したメッセージを右と左に分けると考えたときに
データベースから引っ張ってきたメッセージは右と左にわけられるのですが、入力した場合、データベースにインサートされるのですが、そこから相手に通知がいかず、相手の画面に変化はなく、メッセージが表示されないという結果になりました。
実行した時のコードはいかになります。


MessageBroadcastJob

    class MessageBroadcastJob < ApplicationJob
  queue_as :default

  def perform(message)
    if message.user_id.nil?
      # オールチャット用のブロードキャスト 宛先がない場合はroom_channelにストリームされる。
      ActionCable.server.broadcast "room_channel",message: render_message(message)
    else
      # 宛先を指定した場合のストリーム ルームチャンネルの語尾にユーザIDが付与され、ブロードキャストされる
      # 送る相手にストリーム
      ActionCable.server.broadcast "room_channel#{message.user_id}",message: render_message(message)
      # 自分にストリーム
      ActionCable.server.broadcast "room_channel#{message.userid}",message: render_message(message)
    end
  end

  private
    def render_message(message)
      ApplicationController.renderer.render(partial: 'messages/message', locals: { message: message })
    end
end

※ userid:自分のユーザID user_id:相手のユーザID
  わかりにくくてすみません。


viewは以下のコードであります。

room.html.erb

<h1><%= @user_id_to.name %>さんとのメッセージ</h1>

        <div id="messages">
          <%= render @messages %>
        </div>

        <form>
          <label>Say something:</label><br>
          <input type="hidden" value= <%= @user_id_to %> data-behavior="room_speaker">
          <input type="text" data-behavior="room_speaker">
        </form>

render先
_message.html.erb

<% cache message do %>
<div class="message">
    <% if message.userid == current_user.id %>
    <p class="right_balloon">
    <% else %>
    <p class="left_balloon">
    <% end %>
    <%= message.content %>
    </p>
</div>
<% end %>

しかし、render先を以下のコードにすると動的に送信、受信ができました。

<% cache message do %>
<div class="message">
    <p class="left_balloon">
    <%= message.content %>
    </p>
</div>
<% end %>

参考になるような意見等、お待ちしております。
文章長くなってしまいましたが、よろしくお願いします。