You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Turbo无刷新渲染/替换Partial(Rails 6.1.6)

用Turbo实现无刷新渲染并替换合作方Partial

1. 调整视图中的链接

把原来触发页面刷新的链接改成请求Turbo Stream格式,确保点击时不刷新页面:

<% @partners.each do |partner| %>
  <%= link_to partner_path(partner, format: :turbo_stream) do %>
    <%= image_tag partner.logo_url %>
  <% end %>
<% end %>

<!-- 用于渲染/替换Partial的容器 -->
<div id="partner-details"></div>

2. 创建Turbo Stream模板

在app/views/partners目录下新建show.turbo_stream.erb,定义Partial的替换逻辑:

<%= turbo_stream.replace "partner-details", partial: "partners/details", locals: { partner: @partner } %>

turbo_stream.replace会定位到页面上ID为partner-details的容器,直接用目标Partial替换其内容——不管容器之前有没有内容,都会完成渲染或替换操作。

3. 完善控制器响应

确保PartnersController的show动作支持Turbo Stream格式的请求:

class PartnersController < ApplicationController
  def show
    @partner = Partner.find(params[:id])
    respond_to do |format|
      format.html # 保留常规HTML响应,兼容直接访问详情页
      format.turbo_stream # 处理Turbo Stream请求
    end
  end
end

4. 验证效果

点击合作方图片时,浏览器会发送Turbo Stream请求(请求头包含Accept: text/vnd.turbo-stream.html),控制器返回Turbo Stream模板后,页面会无刷新更新partner-details区域的内容,完全符合你要的交互需求。

内容的提问来源于stack exchange,提问作者Shruikan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 16:45:44