Sun~sun~Flower's

〜ITエンジニアとして日々前向きに生きていくノウハウブログ〜

MENU

【rails超基礎】知りたい!ルーティングで何が出来るかを徹底解説!

routing-map

railsのルーティングについて知りたいです。

今回は上記の疑問に答える記事です。

 

本記事を読む事で、

・ルーティングとは?

・ルーティングで何ができるのか?

上記2つが分かりますので、是非読んで頂ければと思います。

 

【目次】

【まず知っておきたい】ルーティングとは?

girl-printing-questionMark

画面からリクエスト(ボタンが押された時など)があった時、どのコントローラーのどのアクション(メソッド)を呼び出すか?を指示するための道しるべ

です。

 

尚、「コントローラー」と「アクション」というワードは知っている前提で書いています。

 

そして、ルーティングはRailsとデータベースのやり取りで必須です。

 

何故か?と言いますと・・・

データベースとのやり取りもメソッド内で書き、そのメソッドをどのタイミングで使用するか?を、ルーティングで確認する

からです。

 

是非、覚えておきましょう👍

ルーティングはどうやって設定するの??

RailsURLによって、コントローラーに記載したメソッドを指定しています。

 

そして、そのルートを指定しているファイルは、あなたが開発しているアプリケーションフォルダ内のroute.rbというファイルです。

 

route.rbで、以下の様な記述が可能。(あくまで一例です)

 Rails.application.routes.draw do
   root "tweets#index"
   get  "tweets/new"  => "tweets#new"
   post "tweets"      => "tweets#create"
end

例えば、上記のコードです。

 

2行目から順番に解説しますと・・・

2行目「root "tweets#index"」

→トップページ(初期表示時)で、tweetControllerのindexアクションを呼び出す

 

3行目「get  "tweets/new"  => "tweets#new"」

→URLの末尾が「/tweets/new」なら、tweetControllerのnewアクションを呼び出す

 

4行目「post "tweets"      => "tweets#create"」

→URLの末尾が「/tweets」なら、tweetControllerのcreateアクションを呼び出す

こんな感じです👍

 

改めてルーティングとは・・・

 

画面からのリクエスト(URL)から、どのコントローラーのどのアクションを呼び出すか?を指示するための道しるべ

 

という感じで理解頂ければと思います。

  

ですので、がんばってモノにしてください。

例題

次のようなコントローラーがあります。

class ArticlesController < ApplicationController
  def show
    article = Article.find(params[:id])
  end
end

上記コードの5行目のArticle.find(params[:id])という記述のうち、params[:id]には詳細表示されたいレコードのidが格納されます。

 

なぜそのような動作になるのか?を解説していきますね。

例題の解説

ターミナルで「rails routes」を使いアプリケーションのルーティングを確認すると、通常showアクションには以下のような設定がされています。

Prefix Verb   URI Pattern                                   Controller#Action
tweet  GET    /tweets/:id(.:format)                         tweets#show

そのため、例えば「localhost:3000/tweets/3」というURLを指定すると、「3」が「:id」の値として代入されるイメージです。

 

つまりURL「localhost:3000/tweets/3」を指定すれば、画面上の動作としてはtweet番号(この場合はidを指します)が「3」であるtweetを詳細表示できます。

 

そのため、コントローラー内でparams[:id]と指定することで、詳細表示したいレコードのidを格納することができます。

 

最後に

sunset-view-on-rails

以上、railsでのルーティングについて解説しました。

 

ルーティングを理解できれば、あなたの開発の幅がさらに広がって楽しくなります。

 

難しいと思いますが頑張ってください! 

 

これでまた一歩、Railsの知識及びエンジニアとしてのスキルが一段上がりましたね。

 

 解説は以上となります、最後までありがとうございました!