0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ruby on Rails [学習記録-第2章-]

Last updated at Posted at 2019-06-18
  1. リクエストとレスポンス
  2. ルーティング
  3. コントローラ
  4. ビュー

リクエストとレスポンス

  • ウェブサイトにアクセスした時、PCからはリクエストというものが送信される。
  • それに対して、リクエストを受け取ったサーバーはリクエストに対して適切なレスポンスを返す。
    リクエストとレスポンス
    出典:WEBアプリケーションの概要
    レスポンスを返す際には、ルーティング、コントローラ、ビューという3つのパートがそれぞれ異なる役割を持って処理を行う。

ルーティング

  • リクエストに対してどのコントローラのどのアクションを動かすのかを設定。
  • Railsではルーティングをconfig/routes.rbに記述。
    *ルーティングはget 'apps' => 'apps#index'のように書く。get appsappsはURLのパスと呼ばれる部分を示す。
  • ルーティングはパスに対応してどのコントローラのアクションを動かすかを設定するもの。
  • apps#indexコントローラ名#アクション名となっている。
Rails.application.routes.draw do
  get 'apps' => 'apps#index'
end
```

# コントローラ
* コントローラの作成には`rails g controller` コマンドというものを使用。このコマンドでコントローラに関するファイルが自動で作成される。

```
$ rails g controller コントローラ名
# コントローラを作成
```
コントローラを間違えて作成した場合は以下のコマンドで削除する。

```
$ rails d controller コントローラ名
# 作成したコントローラを削除
```
コントローラクラスはファイル名(appss_controller.rb)から、単語の先頭を大文字にしてアンダーバーをとった形になる。

```rb:
class AppsController < ApplicationController
  def index
  end
end
```

### アクション
* アクションとはコントローラクラスにおけるインスタンスメソッドのことを示す。
先のプログラムではAppsControllerクラスにindexアクションを作成したことになる。
アクションは複数記載することが可能。

## ビュー
* レスポンスによって返されるのがビューファイルである。
* ビューファイルには拡張子が`.html.erb`のものを作成する。
* コントローラのメソッド1つにつきビューファイルが1つ存在することになる。
* ビューファイルはコントローラと同じフォルダ内にあり、アクション名と同じファイル名のものが適用される。

### レイアウトファイル
* app/views/layouts以下にあるファイルはレイアウトファイルと呼ばれるビューファイル。
* レイアウトファイルは、それぞれのビューファイルが読み込まれる前に読み込まれる。
* つまり、このファイルにそれぞれのビューの共通部分(ヘッダーやフッターなど)を定義しておくことで、同じコードを省略可能。
* レイアウトフォルだ内にある、`application.html.erb`のbodyタグ内には`<%= yield %>`と書かれている。これはこの部分をそれぞれのビューファイルに置き換えるということ。

```rb:
<!-- yieldの部分がそれぞれのビューファイルに置き換わる -->

  <!DOCTYPE html>
  <html>
    <head>
      <title>App</title>
      <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
      <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
      <%= csrf_meta_tags %>
    </head>
    <body>

    <%= yield %>

    </body>
  </html>
```
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?