CRUDとresourcesメソッドについて

目次

そもそもCRUDって何?

webアプリケーションには基本的に、Create(作成)、Read(読み込み)、Update(更新)、Delete(削除)の4つ主要機能がある場合がほとんど。

例えば基本的な掲示板アプリで、CRUD機能を考えてみると

  1. 投稿の一覧を表示する

  2. 各投稿の詳細を表示する

  3. 新規投稿画面を表示する

  4. 新規作成の処理をする

  5. 更新画面を表示する

  6. 更新の処理をする

  7. 投稿を削除する

7つのアクションが必要となる。

resourcesメソッド

さて、上記7つのアクションに対するルーティングを設定する時、

get 'index', to: 'posts#index'
get 'new', to: 'posts#new'
# 以下省略

のように、7つ設定するのは面倒臭いし、何よりスマートじゃない。

ということで、resourcesメソッドの出番!

resourcesメソッドを使うことで

  1. index(一覧表示)

  2. show(詳細表示)

  3. new(新規作成画面表示)

  4. create(新規作成処理)

  5. edit(更新画面表示)

  6. update(更新処理)

  7. destroy(削除)

ルーティングパターンを一気に作成してくれる!

resourcesメソッドの使い方

例えば、posts_controllerに対するアクションを設定する時。routes.rbに以下を記述。

resources posts

この記述だけで、なんと7つのルーティングパターンが生成させるということ!

ちなみに、今回はindex、new、createアクションだけでいんだよな〜、みたいな時。

そんな時は以下のような記述でOK。

resources :posts, only: %i[index new create]