假设您有UsersController
并且路由在config/routes.rb
中配置如下。
root 'users#index' # root should list all users
resources :users
然后rake routes
显示
Prefix Verb URI Pattern Controller#Action
root GET / users#index
users GET /users(.:format) users#index
users POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
有几个URI表示相同的users#index
操作
我是否应该阻止这种URI重复,或者我应该让他们独自跟随Rails'默认约定?
答案 0 :(得分:1)
对于root
,没关系 - 这是典型的,它只是重定向到用户资源。
答案 1 :(得分:1)
有几个URI表示相同的用户#index action。有几个URI表示相同的用户#index action。
嗯,这就是您通过创建users
资源和然后将根路径指向users#index
来指定的内容。如果您不想要此行为,则可以从资源中删除默认索引操作。
resources :users, except: [:index]
请注意,使用此位置,您无法再通过传统的URL帮助程序引用索引路径。就个人而言,我不会关心这一点,只是让URL重复存在。