昨日は、以下のコマンドを使って、ファイルが追加されるまでを行った。
$ bundle exec rails g controller homes index
↓実行すると
・app/controllersフォルダ(ディレクトリ)の中にhomes_controller.rbファイルが作成された。
・app/viewsフォルダ(ディレクトリ)の中にhomesフォルダ(ディレクトリ)が作成され、index.html.erbファイルが作成された。
・routes.rbにget homes/index
というコードが追加された。
今日は、昨日つくられたファイルがなんなんだ?ということに触れる。
覚えておかなければいけないことは、次の3つ。
・app/controllers/homes_controller.rb
→このファイルを*「コントローラー」と呼ぶ
・app/views/homes/index.html.erb
→このファイルを「ビュー」と呼ぶ。
・routes.rb
→このファイルを「ルーティング」*と呼ぶ。
今日は、それぞれの役割を見ていく。
Webサービスはリクエストとレスポンスのやりとりで成立している。
ユーザーは端末から見たいページなどをリクエストし、サービス側はサーバーでレスポンスを返す。
先ほどのルーティング、コントローラー、ビューはサーバーの中にある。
①スマホからレスポンスが送られた。このレスポンスはURLで送られている。
②URLはサーバーに届くと、ルーティングで読み込まれる。
homes/index
ということで、homes_controllersのindexアクションの呼び出しを実行する。
③ルーティングで呼び出されたcontorollerのアクションに従って、viewファイルを呼び出す。
app/controllers/homes_controller.rbのファイルの画像。
def index
と、indexアクションが定義され、viewファイルを呼び出している。
呼び出されたのは、app/views/homes/index.html.erbファイル。
④呼び出されたviewファイルのコードをレスポンスとして返す。
viewファイルの画像。
Homes#indexという文がh1などで囲まれているが、これは「タグ」と呼ばれる装飾。h1で挟むことで見出しになる。
ちなみにFind me in app/views/homes/index.html.erbをはさんでいるpは段落をつくるタグ。
⑤viewの内容のレスポンスを受けとったブラウザが、情報を表示する。
こうして、情報が手元に届く。
このようにして、ルーティング−アクション−ビューが連携して、リクエストを受け取り、レスポンスを返すことでWebサービスが成立している。
今日はここまで!