0Pricing
Ruby Academy · レッスン

ルートとリソース

RESTful ルーティングです。

「ルートとリソース」はCoddyKit上の無料Ruby Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはRuby Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ruby Academyコースには全4レッスンが含まれています。

ルーティングとは

ルーティングは、受信したHTTPリクエスト(メソッドとパスの組み合わせ)を、それを処理するコントローラのアクションに割り当てます。ルートファイルはRailsアプリの入り口です。

  • ルートは config/routes.rb に定義します。
  • 各ルートはURLを controller#action に結び付けます。
  • Railsはルートを上から順に照合します。

基本的なルート

最も単純なルートは、get でパスをアクションに割り当てます。ここでは /about へのGETリクエストによって、PagesController の about アクションが呼び出されます。

Rails.application.routes.draw do
  get "/about", to: "pages#about"
end

HTTP動詞

各ルートでは、意図を示す動詞を指定します。

  • get はデータを読み取ります。
  • post はデータを作成します。
  • patch / put はデータを更新します。
  • delete はデータを削除します。

同じパスでも、動詞が異なれば別のアクションに割り当てられます。

RESTfulリソース

resources ヘルパーを使うと、モデルに対するRESTの標準ルート7つを1行で生成できます。これは、規約に基づくRailsルーティングの中心となる機能です。

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

7つのアクション

resources :articles は次のルートを作成します。

  • index は一覧、show は1件の表示です。
  • new はフォーム、create は保存です。
  • edit はフォーム、update は保存です。
  • destroy は削除です。

これで、リソースのライフサイクル全体に対応できます。

パスヘルパー

ルートは名前付きヘルパーを生成するため、URLをハードコードする必要がありません。resources :articles によって、articles_path、article_path(@article)、new_article_path、edit_article_path(@article) が提供されます。

articles_path            # => "/articles"
article_path(5)          # => "/articles/5"
new_article_path         # => "/articles/new"
edit_article_path(5)     # => "/articles/5/edit"

アクションの制限

only または except を使うと、必要なルートだけを生成できます。これにより、ルーティングの対象範囲を小さく保ち、意図を明確にできます。

resources :articles, only: [:index, :show]
resources :comments, except: [:edit, :update]

ネストしたリソース

リソースをネストすると、URLで所有関係を表現できます。記事に属するコメントは /articles/1/comments のようになります。ネストしたルートは article_id をコントローラに渡します。

resources :articles do
  resources :comments
end

# GET /articles/1/comments

ルートルート

root は、アプリのホームページである / にアクセスしたときに表示する内容を定義します。わかりやすさのため、ルートファイルの上部付近に配置してください。

Rails.application.routes.draw do
  root "articles#index"
end

ルートの確認

rails routes を実行すると、すべてのルートについて、動詞、パス、ヘルパー、controller#actionを一覧表示できます。アプリのルーティングを理解したりデバッグしたりする最も速い方法です。

メンバールートとコレクションルート

リソースにカスタムアクションを追加できます。

  • member ルートは1つのレコードを対象にします。例:/articles/1/publish
  • collection ルートはリソースの集合を対象にします。例:/articles/search
resources :articles do
  member { post :publish }
  collection { get :search }
end

理解度チェック

ルーティングについての理解度を確認します。

復習:ルートとリソース

RESTfulルーティングについて学びました。

  • ルートは、動詞とパスの組み合わせを controller#action に割り当てます。
  • resources は標準ルート7つを生成します。
  • パスヘルパーを使うと、URLのハードコードを避けられます。
  • only/except、ネスト、メンバールート、コレクションルートで生成するルートをカスタマイズできます。
  • root はホームページを設定し、rails routes はすべてのルートを一覧表示します。

次は、これらのリクエストを処理するコントローラを作成します。

よくある質問

「ルートとリソース」レッスンは無料ですか?

はい。「ルートとリソース」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ruby Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ruby Academyコースには全4レッスンが含まれています。

「ルートとリソース」で何を学びますか?

RESTful ルーティングです。 ブラウザで直接実行するハンズオンコードでRuby Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ruby Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのRuby Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「ルートとリソース」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このRuby Academyレッスンでコードを書いて実行できますか?

はい。すべてのRuby Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ルートとリソース
  2. コントローラーとアクション
  3. Strong Parameters
  4. ビューとレンダリング
← Ruby Academyに戻る