Rails:Turbo Stream Broadcast 不更新视图

Phi*_*l-6 4 ruby-on-rails hotwire-rails turbo-rails ruby-on-rails-7

我有一个 Turbo Stream,它没有更新视图,我不知道为什么。我在类似的配置中设置了另外两个广播,运行良好。

从我所看到的来看,一切看起来都应该正常工作,我只是没有在前端获得更新。我错过了一些明显的东西吗?

# partial
<%= turbo_stream_from 'team_players' %>
<div id="players_<%= dom_id(team)%>"
    <% team.players.each do |player| %>
        <%= render player %>
    <% end %>
</div>
Run Code Online (Sandbox Code Playgroud)
# partial
<%= turbo_stream_from 'team_players' %>
<div id="players_<%= dom_id(team)%>"
    <% team.players.each do |player| %>
        <%= render player %>
    <% end %>
</div>
Run Code Online (Sandbox Code Playgroud)
# server log
Started GET "/cable" for 127.0.0.1 at 2022-02-16 11:45:13 +0000
Started GET "/cable/" [WebSocket] for 127.0.0.1 at 2022-02-16 11:45:13 +0000
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: keep-alive, Upgrade, HTTP_UPGRADE: websocket)
Turbo::StreamsChannel is transmitting the subscription confirmation
Turbo::StreamsChannel is streaming from team_players

Run Code Online (Sandbox Code Playgroud)
# player model
class Player < ApplicationRecord
belongs_to :team

    after_create_commit  do
        broadcast_prepend_to(
            'team_players',
            target: "players_team_#{team.id}",
            locals: { player: self }
        )

    end
end
Run Code Online (Sandbox Code Playgroud)

任何帮助或指示表示赞赏!

Phi*_*l-6 8

看来我错过了 Turbo-rails 安装过程中的第 4 步:https://github.com/hotwired/turbo-rails#installation

运行后:./bin/rails turbo:install:redis一切都可以从命令行进行。

如果没有这一步,事情仍然可以在单独的浏览器会话中进行。

感谢Twitter 上的 David Colby找到了修复程序。