使用 turbo 8.0.4.Blog 模型:after_update_commit lambda { |blog| } broadcast_refresh_to blog }在 blogs/show.html.erb<%= turbo_stream_from @blog %><%= tag.div 数据:{controlle...
使用 turbo 8.0.4
.
博客模型:
after_update_commit lambda { |blog| }
broadcast_refresh_to blog
}
在 blogs/show.html.erb 中
<%= turbo_stream_from @blog %>
<%= tag.div data: {controller: "blogs"} do %>
<!-- more content here -->
<% end %>
在 blogs_controller.js 中,我有在 connect 方法中重新初始化一些组件的逻辑。
broadcast_refresh_to blog
成功刷新页面,但由于以下原因,未执行刺激控制器中的连接方法 morphing
.
如何解决这个问题?
我找到了另一个巧妙的解决方案来解决这个问题。
只需添加 yield(:head)
到您的 layout.html.erb
:
<!-- app/views/layouts/application.html.erb -->
<html>
<head><%= yield :head %></head>
<body><%= yield %></body>
</html>
然后将以下方法之一添加到您的页面:
turbo_page_requires_reload
或者
turbo_refreshes_with(method: :replace, scroll: :reset)
现在,一旦您访问您的页面或发送 broadcast_refresh_to
命令,它将被完全重新加载,从而导致 Stimulus 控制器重新连接。
更多详细信息请访问:https: https://github.com/hotwired/turbo-rails/blob/main/app/helpers/turbo/drive_helper.rb