TechAcademy Webアプリケーションコース(18日目)

先日の続き Rails の学習

Router ...ユーザからの HTTP リクエストの入り口である Router

・リソース(動作の実行に必要な処理システム)に対する CRUD のための4つのルーティング GET(Read),POST(Create),PUT(Update),DELETE(Delete)

config/routes.rb へコードを書く
Rails.application.routes.draw do
get 'messages/:id', to: 'messages#show'
post 'messages', to: 'messages#create'
put 'messages/:id', to: 'messages#update'
delete 'messages/:id', to: 'messages#destroy'
end

「doからendの間にルーティングの設定を記述しますよ」と言う解釈
ルーティングとは、ネットワーク上でデータを送信・転送する際に、宛先アドレスの情報を元に最適な転送経路を割り出すこと。

URL に id が入れられることになり、例えば /messages/1 という URL に対して GET メソッドのリクエストを送ると、 id: 1 な Message を表示することになる。
POST の場合だけは別で id が不要。新規作成のメソッドとで id はまだ用意されていない。そのため /messages に POST メソッドでリクエストを送ると新規作成される。

messages#show というように Controller名 # アクション名 という形で表記されている。


・CRUDのための残り3つの補助ページ
直接 HTTP リクエストを送信するのではなく、ユーザは Web ブラウザ上に表示された Web ページ上でリソースの CRUD 操作を行う。操作のための Web ページも用意する必要がある。

一覧ページ表示(index)アクション ==GETメソッドでフォーム送信==> 詳細ページ(show)アクション
作成ページ表示(new)アクション ==POSTメソッドでフォーム送信==> 保存(create)アクション
編集用ページ表示(edit)アクション ==PUTメソッドでフォーム送信==> 更新(update)アクション

createやupdateのアクションは直接アドレスバーに入れて送信ができなく、ユーザーがWebページで フォームを使ってデータを送信する。それぞれ二つずつのアクションが必要。

詳細ページ(show)にアクセスするには、一覧ページ(index)が必要
# index: show の補助ページ
get 'messages', to: 'messages#index'

保存アクション(create)にデータを送るには、新規作成用のフォームページ(new)が必要
# new: 新規作成用のフォームページ
get 'messages/new', to: 'messages#new'

更新アクション(update)にデータを送るには、更新用のフォームページ(edit)が必要
# edit: 更新用のフォームページ
get 'messages/:id/edit', to: 'messages#edit'
を書き加える


・7つの基本ルーティングの省略形
Rails.application.routes.draw do
resources :messages
end

resources で生成されるルーティングが決まっている。


・Router の完成
Rails.application.routes.draw do
root to: 'messages#index'

resources :messages
end

トップページにアクセスしたときのルーティングを MessagesController の index アクションに設定する。


・Router の確認
$ rails routes

resources :messages で生成される7つのルーティングのことを RESTful なルーティングと呼ぶ。RESTful なルーティングは、リソースの CRUD 操作のために必要な7つのアクション。RESTfulと言われたらこの7つの基本アクション(index, show, new, create, edit, update, destroy)

この記事が気に入ったらサポートをしてみませんか?