Rails路由只指向索引页面

40

这可能是Rails中一个简单的路由问题,但我搜索了一下,得到的是Rails 2的答案,而不是Rails 3。

我生成了一个脚手架,

resources :users 

包括新建、编辑和展示的路由与索引一起被路由。

我只想路由到索引并删除新建、编辑、展示等内容。我已经删除了html.erb文件,但它们仍然被路由。

有什么建议可以帮助我删除其他路由吗?

2个回答

84

使用only选项:

resources :users, only: [:index]

参考文献


2
或者,如果您只想为资源添加一个路由,则可以跳过括号并像这样编写 resources: users, only: :index - dshevc93

14

请参阅Rails路由指南的第4.6章节。

默认情况下,Rails为应用程序中每个RESTful路由创建七个默认操作(index、show、new、create、edit、update和destroy)的路由。 您可以使用:only和:except选项来微调此行为。 :only选项告诉Rails仅创建指定的路由:

resources :photos, :only => [:index, :show]

2
如果我在路由中添加 resources :photos, :only => [:index, :show],并访问 '/photos/new',它会路由到 photos#show,id 为 'show'。 如何将 :new/:edit 路由到 404 页面?请帮忙。 - waqar mirza
@waqarmirza,您可以在“show”路由中添加约束条件,以限制“/:id”为整数。 - fengd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接