railsのresourcesの使い方
はじめに
railsのAPI開発を行う際に、resourcesの使い方がよくわからなかったのでまとめました。
この記事の対象者
rails初心者
resourcesを使う場面
一つのリソースに対して表示や、編集、削除など様々なアクションを行いたい時
resourcesの使用例
例として派遣人材管理アプリケーションを想定します。
その中で人物というリソースに対して、
- 人材の一覧表示
- 人材の新規登録
- 人材のプロフィールの編集
- 人材の削除
を行うことができる機能を作成すると考えます。
routes.rbに
resources :persons
と記載するだけで、これらの機能を行うことができるパスが作成されます。
しかし、パスを作成しただけでは実際にこれらの機能を実行することができません。
これらの機能を実行するコントローラの作成が必要です。
resourcesで作られたパスとコントローラの対応表を以下に示します。
| HTTPリクエスト | コントローラ | パス | 処理内容 |
|---|---|---|---|
| GET | persons#index | /persons | 人材の一覧表示 |
| POST | persons#create | /persons | 新規人材の登録 |
| GET | persons#show | /persons/:id | 特定の人材の表示 |
| PUT | persons#update | /persons/:id | 特定の人材の編集 |
| DELETE | persons#destroy | /persons/:id | 特定の人材の削除 |
このようにresourcesと行いたい操作に対してコントローラを記述することで簡単にリソースを操作できるようになります。
無駄なパスを定義したくない場合
例えばリソースに対して削除を行えないようにしたい。
いちいちパスを書くのは面倒だが、セキュリティ上使わないパスを定義したくない
といったケースでもresourcesで記述することができます。
resources :persons,only: [:index,:show,:create,:update]
以下のようにonly:[:行いたいアクション]のような形で記述することで無駄なパスを定義せずに済みます。