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

Ruby/Rails自定义路由:如何在重定向中正确传入id参数?

Rails 带参数路由重定向的正确写法

针对你遇到的自定义路由重定向传参问题,以下是两种可行的解决方案:

方式一:使用参数占位符字符串

Rails 中重定向的字符串目标支持%{参数名}的占位符格式,会自动匹配路由中定义的同名参数:

# My Cars
get '/api/cars/profile/:car_id', to: redirect('/cars/profile/%{car_id}')

方式二:使用块获取参数(更灵活)

通过块接收params对象,直接从中取出car_id拼接目标 URL,适合需要对参数做额外处理的场景:

# My Cars
get '/api/cars/profile/:car_id', to: redirect { |params, _request| "/cars/profile/#{params[:car_id]}" }

你之前写法的问题说明

  • 第一种写法用了:car_id作为占位符,Rails 在重定向字符串中需要用%{car_id}才能正确解析路由参数;
  • 第二种写法直接用#{car_id}做字符串插值,但路由定义时不存在car_id这个局部变量,自然无法获取到参数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:00:01