RailsにおけるRESTful規則
RESTfulルートは、4つの一般的なカテゴリに分類されます.それらは一般に「crud」行動と呼ばれます.ほとんどすべての主要なウェブサイトは、ユーザーがデータベースと対話することができるように完全にcrudを使用します.
これら4つのCRUD動作をデータベースに実装するには、以下のようなHTTP動詞を組み合わせます.
ポストで作成
がGET で読む
パッチまたは入れでアップデート
破壊 での削除
たとえば、我々は鳥のために完全なcrudをしたいならば.RBモデル、Railsフレームワークのようになります.
Railsで完全なCRUDアクションを設定するには、まずルート内のルートを作成する必要があります.rb次のようにリソースを使用することでこれを行うことができます.
Railsの足場は、いくつかのRailsアプリケーションの主要な部分を生成する簡単な方法です.単一の操作で新しいリソースのモデル、ビュー、コントローラを作成する場合は、以下の例に示すように、スキャフォールディングを使用できます.
反応を使用しているアプリケーションの不要なファイルを持っている上記の問題を避けるために.フロントエンドライブラリとして、端末で次のコードを実行できます.
プライベートメソッド を使用して強力なparamsを使用しますはエラー を扱うコードを持っていますルートで未使用のルートを持っていない.RB はコードが をしていることを説明するコメントを残します
Rails Guides
これら4つのCRUD動作をデータベースに実装するには、以下のようなHTTP動詞を組み合わせます.
ポストで作成
がGET で読む
パッチまたは入れで
破壊
たとえば、我々は鳥のために完全なcrudをしたいならば.RBモデル、Railsフレームワークのようになります.
リソースを使用したRESTfulルートの作成
Railsで完全なCRUDアクションを設定するには、まずルート内のルートを作成する必要があります.rb次のようにリソースを使用することでこれを行うことができます.
# config/routes.rb
Rails.application.routes.draw do
resources :birds
end
我々のアプリケーションがすべての4つのCRUD動作を使用しないならば、我々は我々が必要とする行動だけを持つために我々のルートをカスタマイズすることができます.例えば、我々のウェブサイトが読むだけであるならば、我々はインデックスによるGET要求をして、コントローラ・アクションを示して、ルートを要求するだけです.rbはこのようになります.# config/routes.rb
Rails.application.routes.draw do
resources :birds, only: [:index, :show]
end
それは良い練習として使用されていないルートを持っていない良い練習と見なされます.したがって、上記の構文を使用して、我々が必要とするルートだけを選ぶことは重要です.only:
とexcept:
を置き換えることによって使用しないルートのみをリストするオプションもあります.足場を用いたレール中のCRUDの迅速な設定
Railsの足場は、いくつかのRailsアプリケーションの主要な部分を生成する簡単な方法です.単一の操作で新しいリソースのモデル、ビュー、コントローラを作成する場合は、以下の例に示すように、スキャフォールディングを使用できます.
$ rails g scaffold Bird name:string species:string
端末で上記のコードを実行すると、完全に構築されたコントローラを含むBirdモデルの複数のファイルを作成します.しかし、それは私たちは、またはアプリケーションのフロントエンドのビューを使用しているかのようにファイルを設定します.これはフロントエンドを使用している場合、いくつかの不要なファイルを作成することができます.jsリソースを使用した柵のCRUDの設定
反応を使用しているアプリケーションの不要なファイルを持っている上記の問題を避けるために.フロントエンドライブラリとして、端末で次のコードを実行できます.
$ rails g resource Bird name:string species:string
これは、鳥モデルに必要な複数のファイルを作成しますしかし、コントローラは既にビルドされたCRUDアクションを持ちません.したがって、以下に示すように、完全にCRUDに必要なコードを手動で書く必要があります.# app/controllers/bird_controller.rb
class BirdsController < ApplicationController
#Error Handling
rescue_from ActiveRecord::RecordNotFound, with: :render_not_found_response
# GET /birds (show all birds)
def index
birds = Bird.all
render json: birds # renders data in JSON format
end
# POST /birds (create a new bird)
def create
bird = Bird.create(bird_params)
render json: bird, status: :created
end
# GET /birds/:id (show a specific bird)
def show
bird = find_bird
render json: bird
end
# PATCH /birds/:id (update a specific bird)
def update
bird = find_bird
bird.update(bird_params)
render json: bird
end
# DELETE /birds/:id (delete a specific bird)
def destroy
bird = find_bird
bird.destroy
head :no_content
end
private # code below this line is private (secure)
def find_bird
Bird.find(params[:id])
end
def bird_params
params.permit(:name, :species, :likes)
end
# Error handling
def render_not_found_response
render json: { error: "Bird not found" }, status: :not_found
end
end
良い実行
資源
Rails Guides
Reference
この問題について(RailsにおけるRESTful規則), 我々は、より多くの情報をここで見つけました https://dev.to/8eth/restful-conventions-in-rails-n64テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol