Ruby on Railsでrootへのルーティング設定方法【初心者向け】
ルートへアクセスした場合に特定のアクションを実行させたいのであれば、「root」メソッドを使ったルーティングを設定する必要があります。そこで、ルーティングを設定して特定のアクションを実行し、viewを表示する方法を紹介していきます。
TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。
RubyのフレームワークのRailsでルーティングの設定に関する記事です。
ルーティングの設定とは、あるURLから呼び出すべきコントローラとそのアクションを決めます。
URLが「/」というルートに関しては他と書き方が変わってくるので、そのルーティングの設定に関しての解説をしていきます。
なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

今回はRuby on Railsのルーティングについての解説をしよう。

田島メンター!!ルーティングというのは何ですか〜?

ルーティングはアクセスされたURLから、どのコントローラとアクションを呼び出すかというのを決めるものだよ。実際に設定してみよう。

はい!お願いします!
Railsアプリを作成、起動後「http://localhost:3000/」にアクセスすると以下のような画面になるかと思います。
これは「public/index.html」に記載された内容が呼び出されているので、このファイルの中身を書き換えることで変更することはできます。
ただ、これはルートへアクセスした時に用意されたhtmlファイルを返しているだけになります。
もしルートへアクセスした場合に特定のアクションを実行させたいのであれば、「root」メソッドを使ったルーティングを設定する必要があります。
そこで、ルーティングを設定して特定のアクションを実行し、viewを表示する方法を紹介していきます。
ルーティング設定を行う
まずは、controllerを作成します。
以下のコマンドをRailsアプリのディレクトリにいることを確認して打ちましょう。
rails generate controller home index
homeコントローラとindexアクションを作成しました。
ちなみにコントローラの作成時にアクションも同時に作成すると、それに対応したビューが自動的に作られます。
views/home/index.html.erb
こちらがビューのファイルで、今回ルーティングの設定で呼び出すファイルになります。
index.html.erbを開いてみるとこのようになっています。
この文言がサイト上に表示されれば、ルーティングの設定が出来たという意味です。

アプリケーションを作成したとき、最初http://localhost:3000/にはいつも何か用意された画面が表示されますよね。

今回はそれを、このviews/home/index.html.erbの内容が表示されるようにしてみよう。

それにルーティングを使うんですね。やってみます!
次にルーティングの設定のためにconfig/routes.rbファイルを編集します。
先ほど作成したindexアクションのビューをrootに設定されるよう追記します。
root to: 'home#index'
これで、URLがルートだった場合に飛ぶ先を変更することができました。
試しに以下のコマンドをターミナルで打って確認してみましょう。
rake routes
すると、rootがhomeコントローラのindexアクションにいます。
改めて「http://localhost:3000/」にアクセスしてみてください。
上記の画像のようにhomeコントローラのindexアクションが呼び出されているのが分かります。
先ほど見た、index.html.erbの文言が表示されていますね。
index.html.erbのファイルを書き換えればルートでの表示も変わるということになります。
他のアクションをルーティング設定することも可能なので、ぜひ試してみてください。
また、Ruby/Rails開発のためのおすすめエディタ/IDEとはについて現役エンジニアが回答した記事もあります。合わせてご覧ください。

「routes.rb」はルーティングの設定を行う際に編集するファイルだよ。場所をしっかりと確認しておこう。

「config」フォルダの中ですね。”rake routes”というのは何ですか?

ルーティングの状態を確認することができるコマンドで、これもとても頻繁に使うものなので覚えておこう。

分かりました!ありがとうございます!
[お知らせ]TechAcademyでは初心者でも8週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。RubyでWebアプリを開発したい方はご参加ください。