首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基本嵌套路由(如何同时拥有嵌套路由和不嵌套路由)

基本嵌套路由(如何同时拥有嵌套路由和不嵌套路由)
EN

Stack Overflow用户
提问于 2012-08-10 16:04:35
回答 2查看 61关注 0票数 1

我有这样的路由:

代码语言:javascript
复制
resources :users do
  resources :projects
end

我希望能够像这样访问路由:

代码语言:javascript
复制
/users/1/projects/1

代码语言:javascript
复制
/projects/1

这个是可能的吗?我该怎么设置呢?我有一个问题,在我的应用程序中,我们希望用户能够通过/ users /:id /projects /:id查看他们自己的项目,但在其他页面上,我们也希望看到创建的所有项目,比如这个项目或一个项目和一个id,比如/ /projects/:id。我觉得我遗漏了什么,我应该去掉嵌套的路由吗?或者我可以两样都要。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-10 16:09:44

你可以两者兼得。只需在routes.rb中添加resources :projects即可。然后,在您的ProjectsController中,您必须执行以下操作:

代码语言:javascript
复制
def index
  if params[:user_id]
    @projects = User.find(params[:user_id]).projects
  else
    @projects = current_user.projects
  end
end

我假设您的身份验证系统为您的控制器提供了current_user方法(就像大多数控制器一样)

票数 2
EN

Stack Overflow用户

发布于 2012-08-10 16:10:14

根据你的需要,你当然可以有这两种方式。

代码语言:javascript
复制
resources :users do
  resources :projects 
end
resources :projects

将在/users/:user_id/projects/:id和/projects/:id中提供您的url。

您可以在项目控制器中检查params:user_id是否存在并采取必要的操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11897671

复制
相关文章

相似问题

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