【未経験プログラミング】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アプリケーションフレイムワーク。

・ライブラリとフレイムワーク:

https://techacademy.s3.amazonaws.com/bootcamp/webapp/message-board/rails_rails.png

MVC

HTTPメソッド→Rails(Router→controller→model→DB→model→controller→view→Webブラウザ

 

  • Routerは、URLのルーティングを一元管理してる
  • Controllerは、HTTPリクエストの処理を担っている
  • Viewは、HTTPレスポンスとして返されるWebページ

上記3つはModelと違い関係性が高い

  1. Model(リソースであり操作対象である。)
  2. Router
  3. ルーティング毎に
    1.1. Controller
    1.2. View

Modelで使用するCRUDメソッド一覧 rails c

all(全レコードを取得)

new(新規レコードの為のモデルインスタンスを作成)

find(idを指定して検索)

find_by id以外でも指定して検索、

where 検索条件を文字列、配列、ハッシュのいずれかの方法で与えることができる、first 最初のレコードを1件だけ取得する、

saveレコードの作成

updateレコードのi更新 

dstroyデータ削除

コードでデータベースを操作できる事をORMという。ActiveRecordはORMをサポートしている。messe

 

https://techacademy.s3.amazonaws.com/bootcamp/webapp/message-board/rcv_rails.png

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 が追加される。