こんにちは、Nanayakuです。
今回は、前回の続きでトップページの設定とページの追加を解説していきます。
目次
トップページ作成
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と戻ってくる流れも意識しましょう。
ページの追加
ページを追加する基本的な流れは、以下の通りです。
- controllersでアクションの追加
- viewでページ(〇〇.html.rb)を作成
- 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・・・リソースの削除
アクションとは
アクションとはコントローラの中でViewと紐付いているメソッドのことを言います。
Viewのsitemap.html.erbに紐づいている「def sitemap end」メソッドをsitemapアクションと言います。
最後に
備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。