カテゴリ: Rails 更新日: 2025/12/23

Railsルーティング超入門:resourcesの7アクションとRESTful設計を理解しよう

resources の基礎:7アクションとRESTful設計を理解
resources の基礎:7アクションとRESTful設計を理解

先生と生徒の会話形式で理解しよう

生徒

「Railsでresourcesってよく見るんですが、どういう意味ですか?」

先生

resourcesは、Webアプリの基本的な操作を、たった一行でまとめて設定できる便利な仕組みなんですよ。」

生徒

「へえ、それだけで全部できるんですか?なんだか難しそう…」

先生

「安心してください。今から順番に、RESTという考え方と一緒に、基礎から丁寧に解説していきますね。」

1. Railsのresourcesとは?

1. Railsのresourcesとは?
1. Railsのresourcesとは?

resourcesは、Railsでよく使われるルーティングの省略記法で、「あるデータに対して行える基本操作(一覧表示・詳細表示・新規作成など)」をまとめて定義する方法です。

Webアプリでは、ユーザーや記事などのデータに対して、「見る・作る・更新する・削除する」などの操作をしますよね。これらを一つひとつ書かなくても、resourcesと書くだけでRailsが自動で用意してくれるのです。


resources :articles

この一行で、7つのルートが自動で設定されます。これがいわゆる「7つのアクション」です。

2. RESTとRESTfulってなに?

2. RESTとRESTfulってなに?
2. RESTとRESTfulってなに?

REST(レスト)は、Webの設計ルールのひとつで、「URLと操作の組み合わせでわかりやすく整理しよう」という考え方です。

この考え方に沿って作られたルーティングのことをRESTful(レストフル)なルーティングと呼びます。

たとえば、以下のようにURLと動作が対応しています。


GET    /articles          → 記事一覧を表示する
GET    /articles/1        → IDが1の記事を表示する
POST   /articles          → 新しい記事を作成する
PATCH  /articles/1        → IDが1の記事を更新する
DELETE /articles/1        → IDが1の記事を削除する

このように、HTTPメソッド(GETやPOSTなど)とURLを組み合わせて、自然な形で操作を表現できるようになります。

3. 7つのアクションとは?

3. 7つのアクションとは?
3. 7つのアクションとは?

Railsでは、resourcesを使うと、以下の7つのアクションが自動で定義されます。

  • index:全データの一覧表示
  • show:特定のデータの詳細表示
  • new:新規データの作成フォームを表示
  • create:新規データを保存する
  • edit:既存データの編集フォームを表示
  • update:編集されたデータを更新する
  • destroy:データを削除する

これらは、コントローラの中にそれぞれ関数(アクション)として定義されることになります。

4. 実際にroutes.rbに書いてみよう

4. 実際にroutes.rbに書いてみよう
4. 実際にroutes.rbに書いてみよう

config/routes.rbに以下のように記述します。


Rails.application.routes.draw do
  resources :articles
end

このたった3行で、以下のルーティングが自動生成されます。


GET     /articles          → articles#index
GET     /articles/new      → articles#new
POST    /articles          → articles#create
GET     /articles/:id      → articles#show
GET     /articles/:id/edit → articles#edit
PATCH   /articles/:id      → articles#update
PUT     /articles/:id      → articles#update
DELETE  /articles/:id      → articles#destroy

特に、:idはデータのID(番号)を表します。「何番目の記事か」を識別するために使われます。

5. resourcesのメリットとは?

5. resourcesのメリットとは?
5. resourcesのメリットとは?

resourcesを使うことで、次のようなメリットがあります。

  • コードが短くて済む(1行で7つのルートが定義される)
  • RESTfulな設計で統一感が出る
  • Railsの自動生成コマンドやscaffoldと相性が良い
  • チーム開発でもルールが共通なので迷わない

初心者でも迷わずに使えるように、RailsではRESTful設計を前提にした作りがあちこちに取り入れられています。

6. 一部のアクションだけ使いたい場合

6. 一部のアクションだけ使いたい場合
6. 一部のアクションだけ使いたい場合

もし7つ全部は使わず、「一覧と詳細だけでいい」といった場合は、onlyを使って必要なルートだけを指定できます。


resources :articles, only: [:index, :show]

逆に、「これだけは使いたくない」という場合は、exceptを使って除外することもできます。


resources :articles, except: [:destroy]

7. 単数形のresourceとの違い

7. 単数形のresourceとの違い
7. 単数形のresourceとの違い

複数形のresourcesと似たもので、単数形のresourceという書き方もあります。これは「データが1つしかない」ような場合に使います。


resource :profile

この場合、URLにはIDが含まれず、次のようになります。


GET    /profile        → profiles#show
PATCH  /profile        → profiles#update

ユーザープロフィールのように、「1人1つだけ持つ」ようなデータで使われます。

まとめ

まとめ
まとめ

resourcesとRESTful設計を全体から振り返ろう

今回の記事では、Railsのルーティングにおいて非常に重要な概念であるresourcesと、その背景にあるRESTful設計について、初心者向けに基礎から学んできました。RailsでWebアプリを開発する際、多くの場面で登場するresourcesは、単なる省略記法ではなく、Webアプリ全体の設計思想を反映した仕組みです。

resourcesを使うことで、URLとコントローラの対応関係が自然な形で整理され、「どのURLで、どんな操作をするのか」が直感的に分かるようになります。これは、Railsが大切にしている「設定より規約」という考え方にも深く関係しており、Railsらしい開発スタイルを理解するうえで欠かせないポイントです。

記事の中で紹介したように、resources :articlesと一行書くだけで、一覧表示、詳細表示、新規作成、更新、削除といった7つの基本アクションが自動的に用意されます。これらはWebアプリで最もよく使われる操作であり、多くのサービスが同じ構造を持っています。Railsではこの共通パターンをあらかじめ仕組みとして提供してくれているため、開発者は余計なことを考えずに機能開発に集中できます。

7つのアクションとRESTの考え方

resourcesで定義される7つのアクションは、RESTという設計思想に基づいています。RESTでは、「どのデータに対して、どんな操作をするのか」をURLとHTTPメソッドの組み合わせで表現します。これにより、URLの意味が分かりやすくなり、アプリの構造も整理されます。

たとえば、GETで取得、POSTで作成、PATCHで更新、DELETEで削除といった役割分担は、Railsだけでなく、多くのWebフレームワークやAPI設計でも共通して使われています。Railsでresourcesを理解することは、Rails特有の知識にとどまらず、Web開発全体の基礎力を高めることにもつながります。


Rails.application.routes.draw do
  resources :articles
end

このようなシンプルな記述で、RESTfulなルーティングが一気に整うのは、Railsの大きな魅力のひとつです。最初は自動で生成されるルートの多さに戸惑うかもしれませんが、何度もroutes.rbやrails routesコマンドを確認していくうちに、自然と理解が深まっていきます。

only・except・resourceを使い分ける視点

実際の開発では、必ずしも7つすべてのアクションが必要になるとは限りません。resourcesには、必要なアクションだけを指定できるonlyや、不要なものを除外できるexceptといった便利なオプションが用意されています。これらを活用することで、ルーティングをより安全で分かりやすいものにできます。

また、単数形のresourceは、「データが一つしか存在しない」という前提の設計に適しています。ユーザープロフィールや設定画面など、IDを意識せずに扱いたい場面では、resourceを使うことでURL設計がすっきりします。この違いを理解しておくと、Railsのルーティング設計に自信が持てるようになります。

Railsのルーティングは、最初は覚えることが多く感じられますが、resourcesとRESTful設計を軸に考えることで、一気に整理されます。URL、コントローラ、アクションの関係が見えてくると、Railsアプリ全体の流れも自然と理解できるようになるでしょう。

先生と生徒の振り返り会話

生徒:「resourcesって、ただの便利な省略記法だと思っていましたが、ちゃんとした考え方があるんですね。」

先生:「そうなんです。RESTful設計という共通ルールがあるからこそ、Railsのコードは読みやすくなるんですよ。」

生徒:「7つのアクションも、Webアプリでよく使う操作ばかりでした。」

先生:「その気づきは大事ですね。Railsはその“よくある形”を最初から用意してくれているんです。」

生徒:「onlyやexcept、resourceの使い分けも、だんだんイメージできてきました。」

先生:「とても良い理解です。ルーティングが分かると、Rails開発が一気に楽になりますよ。」

生徒:「これからroutes.rbを見るのが少し楽しみになりました。」

先生:「その感覚を大切にしてください。Railsの基礎力として、とても重要な一歩です。」

関連記事:
カテゴリの一覧へ
新着記事
New1
データベース
SQLの処理が遅くなる原因とは?初心者向けにデータベースパフォーマンス最適化を完全解説
New2
Ruby
RubyのネストHash操作を徹底解説!digとtransformメソッドで複雑なデータも楽々
New3
Rails
Railsインデックス設計の極意!爆速サイトを作るためのスキーマ設計ガイド
New4
データベース
SQLのCOMMITとROLLBACKとは?トランザクション操作を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
PATHと環境変数の正しい設定!Windows・Mac・Linux別チェックリスト付き
No.2
Java&Spring記事人気No2
Rails
Railsで日本語と時刻の設定をしよう!初心者でも安心のlocale/zone初期設定チートシート
No.3
Java&Spring記事人気No3
Ruby
Rubyのハッシュを徹底比較!シンボルキーと文字列キーの違いと使い分け
No.4
Java&Spring記事人気No4
Rails
Railsマイグレーションの型選びを完全ガイド!初心者が迷わないカラム設計
No.5
Java&Spring記事人気No5
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.6
Java&Spring記事人気No6
Rails
RailsモデルとActive Record基礎|ID戦略を完全理解!AUTO INCREMENT・UUID・ULIDの比較と導入手順
No.7
Java&Spring記事人気No7
データベース
ACID特性とは?データベーストランザクションの信頼性を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
Rails
RailsモデルとActive Record基礎|クエリログの読み方を理解してEXPLAIN・joins・includesの違いを学ぼう