Laravel と Ruby on Rails でそれぞれアプリ開発をしていて,CRUD に対応するアクション名を混同しそうになったので整理したいと思います!
Laravel での CRUD
以下のように書くことで,
use App\Http\Controllers\PhotoController;
Route::resource('photos', PhotoController::class);
下の表のような,様々なアクションを処理するためのルートを定義できます!
HTTP verb | パス | アクション | 目的 |
---|---|---|---|
GET | /photos | index | 全ての写真の一覧を表示 |
GET | /photos/create | create | 写真を1つ作成するためのHTMLフォームを返す |
POST | /photos | store | 写真を1つ作成する |
GET | /photos/{photo} | show | 特定の写真を表示する |
GET | /photos/{photo}/edit | edit | 写真編集用のHTMLフォームを1つ返す |
PUT/PATCH | /photos/{photo} | update | 特定の写真を更新する |
DELETE | /photos/{photo} | destroy | 特定の写真を削除する |
Ruby on Rails での CRUD
以下のように書くことで,
resources :photos
下の表のような,様々なアクションを処理するためのルートを定義できます!
HTTP verb | パス | アクション | 目的 |
---|---|---|---|
GET | /photos | index | 全ての写真の一覧を表示 |
GET | /photos/new | new | 写真を1つ作成するためのHTMLフォームを返す |
POST | /photos | create | 写真を1つ作成する |
GET | /photos/:id | show | 特定の写真を表示する |
GET | /photos/:id/edit | edit | 写真編集用のHTMLフォームを1つ返す |
PUT/PATCH | /photos/:id | update | 特定の写真を更新する |
DELETE | /photos/:id | destroy | 特定の写真を削除する |
Laravel と Ruby on Rails の CRUD ルートの違い
上の2つの表の赤文字で示したように,Laravel の create アクションは Ruby on Rails のnew アクション,Larvel の store アクションは Ruby on Rails の create アクションに対応しています.混同しないように注意しないといけないですね!
参考文献