我有这样的路由:
resources :users do
resources :projects
end我希望能够像这样访问路由:
/users/1/projects/1和
/projects/1这个是可能的吗?我该怎么设置呢?我有一个问题,在我的应用程序中,我们希望用户能够通过/ users /:id /projects /:id查看他们自己的项目,但在其他页面上,我们也希望看到创建的所有项目,比如这个项目或一个项目和一个id,比如/ /projects/:id。我觉得我遗漏了什么,我应该去掉嵌套的路由吗?或者我可以两样都要。
发布于 2012-08-10 16:09:44
你可以两者兼得。只需在routes.rb中添加resources :projects即可。然后,在您的ProjectsController中,您必须执行以下操作:
def index
if params[:user_id]
@projects = User.find(params[:user_id]).projects
else
@projects = current_user.projects
end
end我假设您的身份验证系统为您的控制器提供了current_user方法(就像大多数控制器一样)
发布于 2012-08-10 16:10:14
根据你的需要,你当然可以有这两种方式。
resources :users do
resources :projects
end
resources :projects将在/users/:user_id/projects/:id和/projects/:id中提供您的url。
您可以在项目控制器中检查params:user_id是否存在并采取必要的操作。
https://stackoverflow.com/questions/11897671
复制相似问题