

例えば、`UsersController`というのがあったとして、`config/routes.rb`で、以下のように設定したとします。

[code]

    root 'users#index' # rootはuserの一覧にしたい
    resources :users
    
[/code]

そうすると、ルーティングの設定は以下のようになると思います。

[code]

          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        
    
[/code]

このとき、`users#index` に対応するURL(GET)が `/` と `/users` の複数存在することになります。 こういう状態は 有り or
無し どちらとするべきなのでしょうか？

気持ち悪かったので `except` や `only` を使って一意のURLになるようにしていたんですが、
Web上のチュートリアルやサンプルコードなどではそのまま複数ある状態になっていたので・・・  
確かに、デフォルトの設定に沿った名前付きルートがそのまま使えるのは利点な気もします。


CC BY-SA 3.0
2014-12-08T13:33:18.500
459
2014-12-09T00:21:56.070
645
question
ruby ruby-on-rails
Rails4で同じアクションに対するURLが複数あるようなルーティング設定は良い/悪い？


命名則に従ったURLが使える利点はあるので、問題がないなら残して置いて良いのでは。
複数人で開発するときには参照しているアドレスがまちまちでメンテの時のトラブルの原因になる、といった事も考えられるので、そういう時は明示的に潰しておいてもよいかもしれません。


CC BY-SA 3.0
2014-12-08T13:57:13.423
462
2014-12-08T13:57:13.423
525
459
answer


もしその URL を公開しているであれば、SEO の観点からみると URL はコンテンツと一対一の方がいいと聞いた事があります。

コンテンツが重複する場合、下記サイトを参考に`rel=canonical`属性を付けた方がいいかもしれません。

[ rel=canonical 属性に関する 5 つのよくある間違い](http://googlewebmastercentral-
ja.blogspot.jp/2013/05/5-common-mistakes-with-relcanonical.html)


CC BY-SA 3.0
2014-12-08T14:58:35.907
465
2014-12-09T00:21:56.070
2014-12-09T00:21:56.070
745
745
459
answer