Rails4我应该阻止多个URI指示相同的操作吗?

时间:2014-12-08 14:06:13

标签: ruby-on-rails ruby ruby-on-rails-4

假设您有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'默认约定?

2 个答案:

答案 0 :(得分:1)

对于root,没关系 - 这是典型的,它只是重定向到用户资源。

答案 1 :(得分:1)

  

有几个URI表示相同的用户#index action。有几个URI表示相同的用户#index action。

嗯,这就是您通过创建users资源然后将根路径指向users#index来指定的内容。如果您不想要此行为,则可以从资源中删除默认索引操作。

resources :users, except: [:index]

请注意,使用此位置,您无法再通过传统的URL帮助程序引用索引路径。就个人而言,我不会关心这一点,只是让URL重复存在。