如何在Phoenix框架路由器中使用资源更改参数名称而又不影响子资源

问题描述

resources "/rooms",RoomController,only: [:show,:update,:delete],param: "room_id",name: "" do
          resources "/users",UserController,except: [:create],param: "user_id"
          resources "/notes",NoteController,except: [:delete,:update],param: "note_id"
          resources "/messages",MessageController,param: "message_id"
end

我有那些资源。它给了我这样的路由:/ api / v1 / rooms /:_ room_id / users /:user_id

如何删除“ room_id”之前的下划线?

这样的分离是很好的解决方案吗?

resources "/rooms",param: "room_id"

resources "/rooms",only: [] do
    resources "/users",param: "user_id"
    resources "/notes",param: "note_id"
    resources "/messages",param: "message_id"
end

编辑:

我想为带有房间的每个资源都提供:room_id:

DELETE /api/v1/rooms/:room_id/
GET /api/v1/rooms/:room_id/users/:user_id

如果我使用没有参数的资源,那么我将拥有:

DELETE /api/v1/rooms/:id/
GET /api/v1/rooms/:room_id/users/:user_id

如果我使用带参数的资源(“ room_id”):

DELETE /api/v1/rooms/:room_room_id/
GET /api/v1/rooms/:room_id/users/:user_id

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)