URLの指定方法の種類
Railsには下記のように様々なURLの指定方法があります。
- 文字列を直接指定する。(/usersと言ったような)
- ハッシュを利用する。({controller: :users, action: :index}というような)
- URLヘルパーメソッドを利用する。
URLを直接指定する方法
この方法はURLを後で変更しようとした際の修正箇所が多くなってしまうため使うのはやめましょう。
ハッシュを利用する方法
Railsが登場した当時の古くからある方法です。下記の利点を満たしている場合は採用の余地はありです。
利点
- ビューとコントローラで文脈に応じて別々のURLを生成したいとき
- 安定して簡潔に書ける。
URLヘルパーメソッドを使う方法
Rails2.0(2007年リリース)でRESTful-APIをサポートした時に実装されました。特別な事情がない限りはこちらの方法を使うようにしましょう。
利点
- 指しているURLが明確でわかりやすい。
URLヘルパーメソッド
なお、以下は「_path」という構文を使っていますが「_url」という構文を使うことでドメインなどを含んだ完全なURLを返してくれます。
モデルの複数形_path(例、users_path)
resourcesで言えば一覧画面を表示します。
モデルの単数形_path(例、user_path)
resourcesで言えば詳細画面か、更新処理か削除処理を示します。(何が選ばれるかはHTTPメソッドで変わります。)
1 |
user_path(id: 1) |
new_モデルの単数形_path(例、new_user_path)
resourcesで言えば新規登録画面を表示します。
モデルの複数形_path(例、users_path)
resourcesで言えば登録処理(POST)を示します。
edit_モデルの単数形_path(例、edit_user_path)
resourcesで言えば編集画面を表示します。
1 |
edit_user_path(id: 1) |
注意点
Railsのデフォルト設定ではコントローラー、ヘルパー、ビュー以外の場所ではURLヘルパーメソッドは利用できません。(例えば、モデルやクラス、モジュールなどでは利用できないです。)
なお利用しようとする場合は以下のように指定すればいけます。
1 |
Rails.application.routes.url_helpers.xxx_path |
この記事へのコメントはありません。