ルーティングを書く

### Rails.application.routes.draw do ... endブロックは消すことはできない
>1.3 Railsルーターを設定する
>アプリケーションやエンジンのルーティングはconfig/routes.rbファイルの中に存在します。これは、典型的なRailsアプリケーションでのルーティングの配置場所です。

>次のセクションでは、このファイルで使われるさまざまなルーティングヘルパーについて説明します。
```rb
Rails.application.routes.draw do
  resources :brands, only: [:index, :show] do
    resources :products, only: [:index, :show]
  end

  resource :basket, only: [:show, :update, :destroy]

  resolve("Basket") { route_for(:basket) }
end
```
>これは通常のRubyソースファイルなので、ルーティング定義には、条件やループなど、Rubyのあらゆる機能を利用できます。

>ルーティング定義をラップするRails.application.routes.draw do ... endブロックは、`ルーターDSL（Domain Specific Language: ドメイン固有言語）のスコープを確定するのに不可欠なので、削除してはいけません`。
* DSLを使っているのか

https://qiita.com/masatom86650860/items/317ef9360ba6a5a0d575

### resourcesによりindex、show、new、edit、create、update、destroyアクションを個別に宣言しなくても1行で宣言が完了
> リソースベースのルーティング: Railsのデフォルト
リソースベースのルーティング（以下リソースルーティング）を使うことで、指定のリソースコントローラでよく使われるすべてのルーティングを手軽に宣言できます。`resourcesを宣言するだけで、コントローラのindex、show、new、edit、create、update、destroyアクションを個別に宣言しなくても1行で宣言が完了`します。

>2.1 Web上のリソース
ブラウザはRailsに対してリクエストを送信する際に、特定のHTTP verb（GET、POST、PATCH、PUT、DELETEなど）を使って、URLに対するリクエストを作成します。上に述べたHTTP verbは、いずれもリソースに対して特定の操作の実行を指示するリクエストです。リソースルーティングでは、関連するリクエストを1つのコントローラ内のアクションに割り当てます。

>Railsアプリケーションが以下のHTTPリクエストを受け取ったとします。

>`DELETE /photos/17`
このリクエストは、特定のコントローラ内アクションにマッピングさせるようルーターに要求しています。最初にマッチしたのが以下のルーティングだとします。
```rb
resources :photos
```
>RailsはこのリクエストをPhotosController内のdestroyアクションに割り当て、paramsハッシュに{ id: '17' }を含めます。

https://railsguides.jp/routing.html#:~:text=2-,%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%3A%20Rails%E3%81%AE%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88,%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%80%81params%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E3%81%AB%7B%20id%3A%20%2717%27%20%7D%E3%82%92%E5%90%AB%E3%82%81%E3%81%BE%E3%81%99%E3%80%82,-2.2%20CRUD%E3%80%81verb
```rb
Rails.application.routes.draw do

  resources :books
end
```
```rb
                                  Prefix Verb   URI Pattern                                                                                       Controller#Action
                                   books GET    /books(.:format)                                                                                  books#index
                                         POST   /books(.:format)                                                                                  books#create
                                new_book GET    /books/new(.:format)                                                                              books#new
                               edit_book GET    /books/:id/edit(.:format)                                                                         books#edit
                                    book GET    /books/:id(.:format)                                                                              books#show
                                         PATCH  /books/:id(.:format)                                                                              books#update
                                         PUT    /books/:id(.:format)                                                                              books#update
                                         DELETE /books/:id(.:format)                                                                              books#destroy
```
#### resourcesを使うとこの表のようにこれだけのルーティングを設定できる
https://railsguides.jp/routing.html#:~:text=%E3%82%89%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82-,HTTP%20verb,%E7%89%B9%E5%AE%9A%E3%81%AE%E5%86%99%E7%9C%9F%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B,-Rails%E3%81%AE%E3%83%AB%E3%83%BC

#### `resources :photos`とするだけでエイリアスもできる
https://railsguides.jp/routing.html#rails%E3%83%AB%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B:~:text=%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82-,_path%E3%83%98%E3%83%AB%E3%83%91%E3%83%BC,/photos/%3Aid,-%E4%B8%8A%E8%A8%98%E3%81%AE%3Aid