Ruby / Rails

Railsのページ設定・追加

2019年6月30日

こんにちは、Nanayakuです。

今回は、前回の続きでトップページの設定とページの追加を解説していきます。

Railsプロジェクトの作成

目次

トップページ作成

rails サーバーは「rails s」で起動できます。

何もしていない状態でアプリケーションを開く(「localhost:3000」「http://〇〇/」)と↓の画像のページに移動します。

トップページの作成・ページの追加には「routes」「controllers」「views」を主に使います。

 

ルーティングの設定

config/routes.rbファイルにドキュメントルート(トップページ)で表示されるページのルートを書きます。

トップページとは、URLがhttp://(ドメイン)/ の時のページです。

例)このブログのドキュメントルートは「https://nanayaku.com/」です。

 

rootはドキュメントルートを決める時に使い、topページを表示する場合以下のようになります。

root 'homes#top'

トップページにアクセスするとコントローラーのtopアクションに、ルーターがリクエストを振り分けます。

 

controller・viewの作成

↓のコマンドでブラウザからリクエストを受けるコントローラーの作成と定義ができます。(gはgenerateの略)

rails g controller コントローラー名 アクション名

今回の場合だとコマンドは、以下のようになります。

rails g controller homes top

↑のコマンドを実行すると、自動でroutes.rbに

get 'homes/top'

が追記されます。

これは消して大丈夫です。

消さない場合、ドキュメントルートとhomes/topの2つでアクセス出来るようになってしまいます。

また、controllersディレクトリには「homes_controller.rb」が作成され、viewsディレクトリには「homesディレクトリ」と「top.html.erbファイル」の2つが追加されます。

作成されたばかりのtop.html.erbは画像のような中身です。

この状態でサーバーを起動(rails s)すると、画像のようになります。

top.html.erbを編集すれば、このアプリケーションのトップページが出来上がります。

 

一連の処理の流れを確認します。

step
1
ドキュメントルーム(トップページ)へのルートを設定

ブラウザからのリクエスト(URL)に対して、routes.rb(ルーター)の「root "homes#top"」によって、homes_controllerのtopアクションに処理を振ります。

step
2
コントローラーが処理

コントローラーは、topアクションに紐づいたviewのhomes/top.html.erbをレンダリング(描画)します。

step
3
コントローラーがデータをルーターに返す

ルーターの「get 'homes/top'」で返すデータを指定しており、そのデータをブラウザに返します。

このroutes→controller→view→controller→routesの流れは共通です。

routesからviewの流れだけでなく、viewからroutesと戻ってくる流れも意識しましょう。

 

ページの追加

ページを追加する基本的な流れは、以下の通りです。

  1. controllersでアクションの追加
  2. viewでページ(〇〇.html.rb)を作成
  3. routesでルートを設定

今回は「サイトマップ」を作ってみます。

controllers

controllersでsitemapアクションを作ります。

views

views/homesに作りたいページのファイルを作成します。

今回の場合は、views/homes/sitemap.html.erbとなります。

そのファイルにhtmlを書きます。

routes

routes.rbでルートを設定します。

ユーザーのリクエスト(/homes/sitemap)とhomes/sitemap.html.erbを紐づけるので、「get 'homes/sitemap'」となります。

root 'homes#top'・・・・topアクションに紐づけている

get 'homes/sitemap'・・・・HTTPメソッドのgetによって、sitemapアクションとリクエストのURLを紐づけている

 

HTTPメソッド

HTTPとは、ブラウザとサーバー間の通信ルールのことです。

例)

get 'homes/sitemap'(homes/sitemapのデータをそののまま返す)

メソッド一覧

GET・・・リソースの取得(検索など)

POST・・・リソースの作成(入力フォーム。ユーザー登録など)

=>データを隠して送信できます

PUT・・・リソースの作成/置き換え(データのアップロード。前のデータは削除)

PATCH・・・リソースの更新(一部のデータの変更。パスワードなど)

DELETE・・・リソースの削除

HTTPとはなんぞや・・・!?

 

アクションとは

アクションとはコントローラの中でViewと紐付いているメソッドのことを言います。

Viewのsitemap.html.erbに紐づいている「def sitemap end」メソッドをsitemapアクションと言います。

クラス・インスタンスとはなんぞや・・・!?(Ruby)

 

最後に

備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。

-Ruby / Rails
-

© 2024 Nanayaku blog Powered by AFFINGER5