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

如何将Phoenix成员路由中的user_id参数重命名为id?

Phoenix路由:将嵌套端点参数从:user_id改为:id

你可以通过两种方式实现需求,把/api/users/:user_id/friends的参数名改为:id:

方法一:单独定义friends路由(推荐)

直接拆分嵌套路由,单独指定带:id参数的路径,同时保留原有的users资源路由:

# 保留原有users资源路由
resources "/users", UserController, except: [:create, :delete]
# 单独定义friends路由,参数指定为id
get "/users/:id/friends", UserController, :friends

这样生成的路径就是/api/users/:id/friends,请求时参数会以:id的形式传递到UserController.friends/2中。

方法二:使用scope手动指定参数名

如果希望保持路由的结构关联性,可以用scope包裹friends路由,手动设置父路径的参数为:id:

resources "/users", UserController, except: [:create, :delete]

scope "/users/:id" do
  get "/friends", UserController, :friends
end

两种方法都能满足你的需求,方法一更简洁直接,适合这类简单的额外端点场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 19:27:10