pathの書式_url_pathをどうやって使い分けるか

pathの書式について_url_pathの2種類があるのはわかっていたが、なんとなくよく見るからという理由だけで_pathを使っていた。
調べると使い分けがあるらしい。

結論

  • リダイレクトする場合は、_urlを使う
  • それ以外の場合は、_pathを使う

なぜ?

  • _urlの場合、完全なURLの文字列を返す。HTTPの標準としてはリダイレクトのときに完全なURLが要求されるから。
  • _pathはルート文字列以下を返す

繰り返しだが、HTTPの標準としてリダイレクトの際は完全なURLの方がいいので、_urlを使う。それ以外はRails Wayに沿って_pathと書く。

参考

Railsチュートリアル