6時だョ!!全員集合!!

Rails・JavaScrictを中心にアウトプットします。

2021年8月19日 現場Rails Chapterr6 (routes.rbについて)

RESTfulとは

RESTの原則 ①統一インターフェース  :あらかじめ定義・共有された方法(WebであればHTTP)で情報がやりとりされる ②アドレス可能性  :すべての情報が一意なURLの構造で示される ③接続姓  :やりとりされる情報にはリンクを含めることができる ④ステートレス性  :やりとりは1回ごとに完結し、前のやりとりの結果に影響を受けない

RESTful - 1.HTTPリクエストはそのリクエストで必要な情報をすべて持ち、前のリクエストからの状態が保持されている必要がない(ステートレス) - 2.個々の情報(リソース)への「操作」の表現がHTTPメソッドとして統一される - 3.個々の情報(リソース)がそれぞれ一意なURIで表されている - 4.ある情報(リソース)から別の情報を参照したいときは、リンクを利用する

RDBとは

Relational Database(リレーショナルデータベース)とは、データを複数の表として管理し、表と表の関係を定義することで、複雑なデータの関連性を扱えるようにしたデータベース管理方式。

URLヘルパーメソッド

photos_pathは/photosを返します new_photo_pathは/photos/newを返します edit_photo_path(:id)は/photos/:id/editを返します (edit_photo_path(10)であれば/photos/10/editが返されます) photo_path(:id)は/photos/:idを返します。 (photo_path(10)であれば/photos/10が返されます) これらのpathヘルパーには、それぞれに対応するurlヘルパー (photos_urlなど) があります。urlヘルパーは、pathの前に現在のホスト名、ポート番号、パスのプレフィックスが追加されている点が異なります。

_path

相対パス=相対パスは今いる位置を起点にして、場所を指定する。

・redirect_to以外で使用する。

・link_toでよく使用されるイメージ

_url

絶対パス=絶対パスは今いる位置に関係なく場所を指定する。

・redirect_toの時にセットで使用する。(HTTPの仕様上、リダイレクトのときに完全なURLが求められるので)

putとpatchの違い

Putメソッドは更新というよりは置換 Patchメソッドは既存のリソースを更新・変更・修正

patchは、データがすでに存在しているものに対して更新をかける処理です。

putはデータが存在しているかどうかわからないときに使用します。データが存在しているときは更新をし、データが存在しない場合は新規作成を行うという処理です。

リソースとは?

URLが表す情報の一単位のこと。

resoucesでルートを定義

resourcesメソッドを用いてルーティングを作成すると、WebアプリケーションのCRUD機能を実装するために必要なルーティングを全て作成することができます。

resourcesメソッドとは、railsで定義されている**7つのアクションのルーティングを自動で作成する**メソッド。

#ルーティングを記述するroutes.rb内でresoucesを使ってルートを定義
Rails.application.routes.draw do
  resources :コントローラー名
end

#コントローラーに7つのアクションルーティングを設定する

CRUD機能をもつ7つのアクション

resoucesで、複数のコントローラーのルーティングを一行で定義する

Rails.application.routes.draw do
  resources :コントローラー名, :コントローラー名
end

# (例)usersコントローラーとhogesコントローラーの7つのアクションのルーティングが作られる
  resources :users, :hoges

onlyとexceptオプション

特定のアクションのルートだけを作成するオプション。

#tweetsコントローラーにindexアクションとshowアクションのルートだけを指定
Rails.application.routes.draw do
  resources :tweets, only: [:index, :snow]
end

railsのroutes.rbのmemberとcollectionの違いは?

memberとcollectionの違いは?

routingにidが付くか付かないかの違い。

member=URLに:idが含まれる ex) /tasks/:id ⇒taskの特定のidのページ、特定の投稿に対して、ブックマークするときなどに使う。

collection=URLに:idが含まれない ex)/tasks/

memberは特定のデータにアクションを利用する

collectionは全体のデータにアクションを利用する

ex)サーフボードのコレクション,メンバーはある集団の一員。

resourcesメソッドを使ってルーティングを定義しよう!

routes.rbの構造化

scope・namespaceの違い Railsのroutingにおけるscope / namespace / module の違い キー:URLの変更・ファイル構成

現場Railsでは、contollerでまとめる方式も紹介されている。

Rails.application.routes.draw do
  controller :products do
    resources :products, only: [:index]
  end
  controller :photos do
    resources :photos, onky: [:index]
  end
end

Ruby on Rails ルーティングについての知識

scope / namespace / module

  • scope URLに意味を持たせるために使う。URLの構成を自分で変えることができる。ディレクトリ構成は変わらない。

  • namespace URLとディレクトリ構成を自分で変えることができる。

  • scope module URLは変わらない。ファイル構成だけを変える。

namespace使用例:admin権限のコントローラー・ビューを分けたいetc (URL・ファイル構成を変えられる。) - app/controller/admin/users_controller.rb:管理 - app/controller/users_controller.rb:一般ユーザー

postのコアイメージ

postのコアイメージは「立てる」。何もない更地に新しく物を立てるって意味で使う。

ex) 新しいポストに着くとかでもポストを使う。

URIとURL

URL(Uniform Resource Locator)

Web上にある、あらゆるファイルがWeb上のどの位置にあるのかを表したもの。特定のWEBページのWEB上の住所。

URI(Uniform Resource Identifier)

Web上にある、あらゆるファイルを認識するための識別子の総称。

URLはWEBにあるサイトとかホームページとかの住所みたいなもの。 URI:ID(広義ではURLを含む、JSONを返したり、webページの住所に留まらない) https://kenkotest.herokuapp.com/users

URL:住所(Webページの住所) https://www.google.com/

rails/info/routes

以下のコマンドをURLに書くと、ブラウザ画面上でルーティングを確認できる。

rails/info/routes

今日やったことのまとめ

  • Railsと周辺理解
  • HTTPメソッドとURLパターン
  • URLヘルパーメソッド
  • routes.rbの書き方
  • RESTful設計(resourcesなど)
  • URL設計の考えかた(scope,namespace,module)