8

Rails で Hotwire を使用してモデルの更新をストリーミングしたいと考えています。ドキュメントでは、モデルを使用してストリームを作成することについて言及していますが、ユーザーが行ったモデルへの変更がそのユーザーにのみストリーミングされるように、ユーザーごとに動的ストリームを作成したいと考えています。

結合テーブルを介して多くのユーザーを持ち、それらに属する VideoCall モデルがあるため、モデルは次のようになり、そのようなブロードキャストがあります

class VideoCall < ApplicationRecord
  has_and_belongs_to_many :users

  broadcasts_to ->(video_call) {
    video_call.users.map{|u| "video_calls:user_#{u.id}"}
  }, inserts_by: :prepend

  # more code here
end

追加したモデルの更新を取得したいERBテンプレート

<%= turbo_stream_from "video_calls:user_#{current_user.id}" %>

これは、users_video_calls テーブルに 1 人のユーザーがいる場合に機能します。しかし、video_call に複数のユーザーがいるとすぐに機能せず、それらすべてのユーザーのストリームにブロードキャストしたいと考えています。

私が取っているアプローチは正しいですか、複数のユーザーストリームへのブロードキャストを動的に実現するにはどうすればよいですか?

4

1 に答える 1