我想在Rails中使用Hotwire进行模型更新流式传输。文档中提到创建一个使用模型的流,但我想为每个用户创建一个动态流,以便用户对模型的更改仅流式传输给该用户。
我有一个VideoCall模型,该模型通过连接表与多个用户具有关联关系,因此模型如下所示,并且我已经对其进行了广播。
在 ERB 模板上,我想获取我添加到模型中的更新。
我有一个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 表中只有一个用户,那么这将是有效的。但是,一旦视频通话中有多个用户,它就不起作用了,我想要广播到所有这些用户的流中。
我的方法正确吗?如何实现动态地向多个用户流广播?
broadcast_remove_to
语句中不需要使用action: :prepend
。 - moveson