ruby-on-rails - rails : Turbo Stream Broadcast not updating view

标签 ruby-on-rails ruby-on-rails-7 hotwire-rails turbo-rails

我有一个不更新 View 的 Turbo Stream,我不确定为什么。我在类似的配置中设置了另外两个广播,它们运行良好。

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

# partial
<%= turbo_stream_from 'team_players' %>
<div id="players_<%= dom_id(team)%>"
    <% team.players.each do |player| %>
        <%= render player %>
    <% end %>
</div>
# 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
# 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

# console log after manually creating a player for team 9 (exert)
...
 Rendered players/_player.html.erb (Duration: 0.3ms | Allocations: 99)
[ActionCable] Broadcasting to team_players: "<turbo-stream action=\"prepend\" target=\"players_team_9\"><template><div id=\"player_1885\">\n  <p>\n    <strong>ID:</strong>\n    1885\n  </p>\n\n  <p>\n    <strong>User:</strong>\n    3820748f-d9d3-400e-ac90-6149800a0e68\n  </p>\n\n  <p>\n    <strong>Team:</strong>\n    9\n  </p>\n\n  <p>\n   ...
=> 
#<Player:0x00007fba5fa12568
...

感谢任何帮助或指点!

最佳答案

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

运行后:./bin/rails turbo:install:redis 命令行下一切正常。

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

感谢David Colby on Twitter寻找修复。

关于ruby-on-rails - rails : Turbo Stream Broadcast not updating view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71141502/

相关文章:

ruby-on-rails - Rails Paperclip S3 重命名数千个文件?

ruby-on-rails - 为什么这个 Rails 7 link_to destroy 嵌套资源也试图破坏父资源?

ruby-on-rails - 如何在生成的 HTML 本身中显示部分的名称

turbolinks - 使用热线广播到多个涡轮流

ruby-on-rails - ActiveResource 如何从具有单数名称的 REST API 中获取资源?

ruby-on-rails - Mongoid::Document 是 GlobalID::ActiveJobs 的标识吗?

ruby-on-rails - 在 RSpec 中,mock 和 double 之间有什么区别?

javascript - 如何将自定义 JS 文件添加到新的 rails 7 项目

javascript - 加载新的 Turbo Frame 时如何执行 JavaScript

jquery ruby​​ rails hotwire turbolinks fontawesome