# Ruby on Rails 講座 > [name=信輔先生] ###### tags: `ぽよ大学` ## Webの復習 - Webとは - サーバ・クライアント - World Wide Web - URL:Web上のリソースの住所 `https://hackmd.io/KJjYcQTYRPGVN-ipjfyfiw?both` - (グローバル)IPアドレスはWeb上のサーバの住所 - ex) `yahoo.co.jp` `google.com` `hackmd.io` - 通信の決まりごと(プロトコル)の一つにHTTPがある - HTTPSはHTTPを暗号化したもの - メールや動画のプロトコルなど100種類ほど - リソースとは - サーバにあるデータでWeb上に公開されるものすべて - ex) このページ - ex) yahooのニュースページ - ex) instagramに投稿された写真 - ex) twitterの~~飛鳥の裏垢の~~つぶやき - (逆に公開されてないものは何?) - サーバPCのデスクトップ - サーバPCの設定ファイルとか - HTTPのメソッド(種類) - ★GET:リソースの取得 - `GET news.yahoo.co.jp/topics` - ブラウザで普通にURLを打ち込んでページを開くとき、ブラウザはGETメソッドを実行している。 - ex) Twitterを開く(トップページのリソースをGETで取得している) - ★POST:リソースの作成・追加 - POST 何らかのURL - ex) Twitterでつぶやく。 - ex) ブログを投稿する。 - ex) アカウント新規作成する。 - ☆DELETE:リソースの削除 - DELETE 何らかのURL - ex) Twitterのつぶやきを消す。 - ex) 投稿したブログを消す - ex) 退会する - ☆PUT:リソースの更新、作成 - PUT 何らかのURL - ex) すでに投稿したブログを更新する。 - ex) アカウント情報の更新(プロフィール変えるとか) - HEAD - PATCH - OPTIONS # Webアプリをどうやってつくっていくか ## MVCモデル (Railsが採用しているモデル) Model-View-Controller ~~サーバー内の模様~~  ### ツイートを取得するとき 1. ブラウザが `GET https://twitter.com/harataira_/status/1271401277902090240` する。(GETメソッド) 2. ルーターやらなんやらが頑張って `twitter.com` のサーバ `T` にたどり着く。 3. `T` のcontroller(司令塔)がHTTPのリクエストを受け取って「何をしたらいいか判断する」 4. [Model] データベース(データを保存しているところ)からツイートを取得するようModel(下っ端)に依頼する。 5. Controllerは見つかったツイート情報をもとにページを作るようViewに依頼する。 6. [View] Viewはツイートを表示するページ(HTML・CSS・JavaScript)を作ってControllerに返す。 7. Controllerはページをクライアントに返す(HTTPレスポンス) 8. クライアントのブラウザがページをレンダリングする。 # Linuxで使うコマンドの例 ``` $ ls 今いるところにどんなファイル・ディレクトリがあるか $ pwd print working directory $ touch poyo.txt poyo.txtというファイル名でファイルを新規作成する $ rm poyo.txt poyo.txtを削除する ``` # Rails Hello, World! ``` $ rails new aska (askaという名前のRailsアプリケーションを新規作成する) $ bundle install --path vendor/bundle (Gemfileに宣言したライブラリを vendor/bundle にインストールする) config/environments/development.rbにconfig.hosts.clearを追加する。 $ rails server ``` ## ルーティングの定義 `config/routes.rb` はHTTPリクエストとRailsのControllerを紐付ける。 ```ruby= root 'application#hello' ↑と↓は全く同じ意味() get '/' to: 'application#hello' ``` これは、 `HTTP`の`GET`メソッドで`/`宛てにリクエストが来たら、application controllerのhelloメソッドを実行しなさい、という意味になる。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up