Ruby on Railsでrootへのルーティング設定方法【初心者向け】

ルートへアクセスした場合に特定のアクションを実行させたいのであれば、「root」メソッドを使ったルーティングを設定する必要があります。そこで、ルーティングを設定して特定のアクションを実行し、viewを表示する方法を紹介していきます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

RubyのフレームワークのRailsでルーティングの設定に関する記事です。

ルーティングの設定とは、あるURLから呼び出すべきコントローラとそのアクションを決めます。

URLが「/」というルートに関しては他と書き方が変わってくるので、そのルーティングの設定に関しての解説をしていきます。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

田島悠介

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

大石ゆかり

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

田島悠介

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

大石ゆかり

はい!お願いします!

 

Railsアプリを作成、起動後「http://localhost:3000/」にアクセスすると以下のような画面になるかと思います。

スクリーンショット 2016-03-09 14.47.30

これは「public/index.html」に記載された内容が呼び出されているので、このファイルの中身を書き換えることで変更することはできます。

ただ、これはルートへアクセスした時に用意されたhtmlファイルを返しているだけになります。

もしルートへアクセスした場合に特定のアクションを実行させたいのであれば、「root」メソッドを使ったルーティングを設定する必要があります。

そこで、ルーティングを設定して特定のアクションを実行し、viewを表示する方法を紹介していきます。

 

ルーティング設定を行う

まずは、controllerを作成します。

以下のコマンドをRailsアプリのディレクトリにいることを確認して打ちましょう。

rails generate controller home index

スクリーンショット 2016-03-09 16.57.32

homeコントローラとindexアクションを作成しました。

ちなみにコントローラの作成時にアクションも同時に作成すると、それに対応したビューが自動的に作られます。

views/home/index.html.erb

こちらがビューのファイルで、今回ルーティングの設定で呼び出すファイルになります。

スクリーンショット 2016-03-09 17.41.10

index.html.erbを開いてみるとこのようになっています。

この文言がサイト上に表示されれば、ルーティングの設定が出来たという意味です。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

それにルーティングを使うんですね。やってみます!

 

次にルーティングの設定のためにconfig/routes.rbファイルを編集します。

先ほど作成したindexアクションのビューをrootに設定されるよう追記します。

root to: 'home#index'

 

これで、URLがルートだった場合に飛ぶ先を変更することができました。

試しに以下のコマンドをターミナルで打って確認してみましょう。

rake routes

スクリーンショット 2016-03-09 17.11.10

すると、rootがhomeコントローラのindexアクションにいます。

改めて「http://localhost:3000/」にアクセスしてみてください。

スクリーンショット 2016-03-09 17.03.43

上記の画像のようにhomeコントローラのindexアクションが呼び出されているのが分かります。

先ほど見た、index.html.erbの文言が表示されていますね。

index.html.erbのファイルを書き換えればルートでの表示も変わるということになります。

他のアクションをルーティング設定することも可能なので、ぜひ試してみてください。

また、Ruby/Rails開発のためのおすすめエディタ/IDEとはについて現役エンジニアが回答した記事もあります。合わせてご覧ください。

 

田島悠介

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

大石ゆかり

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

田島悠介

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

大石ゆかり

分かりました!ありがとうございます!

 

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