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

Rails 7中Turbo Stream GET请求自定义参数丢失问题求助

让Turbo GET请求传递自定义参数的解决方法

可行方案

移除data属性中的turbo_method: :get配置,因为<a>标签默认就是发起GET请求,无需额外指定。修改后的代码如下:

<%= link_to "Add crew to ship",
      new_crew_path(ship_id: ship.id),
      data: { turbo_stream: true } %>

此时点击链接,Turbo会正常发起包含ship_id参数的GET请求,控制器能正确接收到参数。

问题原因

当给<a>标签添加data-turbo-method="get"时,Turbo会触发特殊处理逻辑:它会生成一个空请求体的GET请求,并且不会自动携带URL中的查询参数。这是Turbo为区分常规a标签GET请求与手动指定method的GET请求设计的行为。

而你测试的两种正常场景:

  • 移除turbo_stream: true后,请求由浏览器默认处理,自然保留URL参数;
  • POST请求时,Turbo会正确携带URL查询字符串中的参数,因此能正常传递。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 07:45:34