首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单例资源的Rails路由/auth

单例资源的Rails路由/auth
EN

Stack Overflow用户
提问于 2013-12-20 18:09:06
回答 1查看 304关注 0票数 0

我有一个资源profile,我希望用户能够以各种方式访问它。我希望登录用户能够从这些路由访问他们自己的配置文件:

代码语言:javascript
运行
复制
GET /profile
GET /profile/edit
PATCH /profile
PUT /profile

我希望通过这条路线可以看到个人资料:

代码语言:javascript
运行
复制
GET /profiles/:id

无法创建或删除配置文件,用户也不能编辑其他用户的配置文件。我也不希望向用户公开配置文件索引,因此这些路由都不应该可用:

代码语言:javascript
运行
复制
GET /profile/new
POST /profile
DELETE /profile
GET /profiles
GET /profiles/:id/edit
PATCH /profiles/:id
PUT /profiles:id
DELETE /profiles/:id
GET /profiles/new
POST /profiles

我正在使用这个路径映射:

代码语言:javascript
运行
复制
resources :profiles, only: [:show]
resource :profile, only: [:show, :edit, :update]

两个问题:

  1. 我这样做对吗?
  2. 当我在/profile/edit上提交表单时,它试图修补到/profiles/:id,这是无效的。它似乎应该修补到/profile。我做错了什么?
EN

回答 1

Stack Overflow用户

发布于 2013-12-20 20:18:51

如果您使用像resource :profile, only: [:show, :edit, :update]这样的单例资源,它假定整个应用程序只有其中一个资源。

如果您真的认为用户必须拥有这些路由,只需将它们映射到它们所属的位置即可。

代码语言:javascript
运行
复制
resources :profiles, only: [:show, :edit, :update]
get '/profile', to: 'profiles#show'
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20709547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档