【未経験プログラミング】ModelからRoutes【27日】
メッセージボード
・ HTTPメソッドは8つ:GET,POST,PUT,DELETE,HEAD,OPTIONS,TRANCE,CONNECT
そのうちCRUD:
CREATE:post(あらたらしいURLの作成)/put 子リソースの作成、データの追加、
READ:get リソースの取得
UPDATE:put リソースの更新、追加
DELETE:delete リソース削除
ローカルPCのファイルシステムで考えるとわかりやすく、
POSTは「新しいファイルを生成」。
PUTはファイルの置き換え(存在しなければそのまま配置される)。
PATCHはファイルを開いて中身を更新。
DELETEはファイルを削除。
・リソースとはWEB上で表示されるものすべて。
・WebアプリケーションはURLに対してHTTPリクエストメソッドを送りリソースを操作する。
Webアプリケーションフレイムワークとは Web開発における共通処理をまとめあげたものがWebアプリケーションフレイムワーク。
・ライブラリとフレイムワーク:
HTTPメソッド→Rails(Router→controller→model→DB→model→controller→view→Webブラウザ
Router
は、URLのルーティングを一元管理してるController
は、HTTPリクエストの処理を担っているView
は、HTTPレスポンスとして返されるWebページ
上記3つはModelと違い関係性が高い
- Model(リソースであり操作対象である。)
- Router
- ルーティング毎に
1.1. Controller
1.2. View
all(全レコードを取得)
new(新規レコードの為のモデルインスタンスを作成)
find(idを指定して検索)
find_by id以外でも指定して検索、
where 検索条件を文字列、配列、ハッシュのいずれかの方法で与えることができる、first 最初のレコードを1件だけ取得する、
saveレコードの作成
updateレコードのi更新
dstroyデータ削除
コードでデータベースを操作できる事をORMという。ActiveRecordはORMをサポートしている。messe
Routes.rb → messages_controller.rb →messagesフォルダ
ソースに対する CRUD のための4つのルーティング
Web アプリケーションは、ユーザが HTTP リクエストの4つの CRUD メソッド(POST, GET, PUT, DELETE)を使って、Web上のリソースを操作できるアプリケーションでした。
リソース1つのCRUDに対応するHTTPリクエストはGET POST PUT DELETEです。
get 'messages/:id', to: 'messages#show'
post 'messages', to: 'messages#create'
put 'messages/:id', to: 'messages#update'
delete 'messages/:id', to: 'messages#destroy'
:idはURLのmessages/1 の/1部分に対してのCRUDが実行できる。`POSTは新規URL作成の為書いてない。特定の何々にアクセスする(show)or更新する(put)or削除する(delete)
うえ4つは一覧ページ(index)がないため詳細ページにたどり着けない。
もちろんURL直接打てばいける。その為補助が必要
showには→:get 'messages', to: 'messages#index' 詳細ページの前のindex
createには→:get 'messages/new', to: 'messages#new 新規作成用のフォームpg
updateには→:get 'messages/:id/edit', to: 'messages#edit' データを渡す必要
上記7個をを省略
resources :messages
#RESTful なルーティングと呼ばれる=CRUD操作に必要な7種類のアクションです。(index, show, new, create, edit, update, destroy)#
root to: 'messages#index'
root
メソッドを使用することで、Railsがルート'/'
とすべき場所を指定できます。
そのため→root GET / messages#index が追加される。