11分までコントローラとルーター、アクション
rails は ページを作る際に、まず、コントローラー を作る。(rails g) MVCで言う所の、cである。
例、>> rails g controller home rails generate ➡️生み出すの意
controllerを作ると、 Viewディレクトリにも home ができる。
この中にviewファイルを作っていく。(htmlファイル)
新しくページを追加していく際は、 アクションというものを追加していく
アクションとはアクセスがきた時に、具体的にどのviewファイルを返すのかという処理行う
アクセスがきた時に、ルーター(routes.rb)というところで、どのcontrollerのアクションに、処理を任せるのかを記述する
Rails application.routes.draw do
root to: `home#index` ➡️rootはローカルホスト3000のこと。ここではその ルートにきた時に、
homeコントローラーの インデックスアクションの処理を実行するということ
end
該当するのはこちら↓
class HomeController < ApplicationController
def index ➡️この部分がルーターファイルで実行された。
end
end
def indexをhtmlfileを返すようにしたい↓
viewsディレクトリの対応する、homeディレクトリの中に、アクションとおんなじ名前のhtmlファイルを作成する。今回は
index.html.erb
ここで作ったのはviewsの中のhomeの中のindexhtmlファイル
ここまでのおさらい
まずアクセスがきた時に routes.rbのなかで、どこの コントローラーアクションに、処理を任せるか を記述した
railsには名前の命名規則の対応がある
アクションとおんなじ名前のhtmlを自動で返すことになる
#.erbの拡張子の意味
拡張子をつけるとrubyのコードを埋め込むことができる
<h1>これはトップページです<h1>
<%= request.url %>・・・・・・・・・・request.urlこの部分はプログラミングのコードで普通のhtml
ファイルには組み込めないのだが、.erbとすることで埋め込むことができる
現在アクセスしているurlを表示してくれる
その場合、<% %>を使う <%= %>
もう一つ学習すると
<h1>これはトップ<h1>
<% if request.url == 'http://localhost3000' %>
<h2>これは自分のパソコn<h2>
<% else %>
<h2>自分のパソコンで動かし〜<h2>
<% end %>
#<%= %>と<% %>の違い
<%= %>は実際表示させたい時のみ
<% %>は処理