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

如何使turbo_frame_tag加载turbo_stream格式而非默认HTML?

解决方法

要让turbo_frame_tag在页面加载时请求turbo_stream格式,无需依赖额外JavaScript,只需在生成src路径时显式指定格式即可:

<%= turbo_frame_tag dom_id(@item, "loader_helper"), src: home_index_path(@item, format: :turbo_stream) %>

这样生成的请求URL会带上.turbo_stream后缀(或format=turbo_stream参数,取决于你的路由配置),服务器端会自动识别为TURBO_STREAM格式,匹配控制器中format.turbo_stream的处理分支。

验证效果

发起的请求日志会变为:

Started GET "/home/1.turbo_stream" for ::1 at 2023-01-23 16:10:39 +0300
Processing by HomeController#index as TURBO_STREAM

控制器中的respond_to分支可正常处理该请求:

def index
  respond_to do |format|
    format.html
    format.turbo_stream
  end
end

这并非Turbo的设计限制,只是默认情况下turbo_frame的请求会采用HTML格式,通过显式指定URL中的格式参数就能切换为turbo_stream请求,全程无需依赖JavaScript触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:30:46