Ruby on Rails

CRUD処理含むルーティング設定にはresourcesが便利【Rails】

更新日:

こんにちは、Shinyaです

今回はRuby on Railsを使うなら必ず使うことになるルーティング設定の便利メソッドであるresourcesについてお伝えします

resourcesを使うとCRUD処理も瞬時に作れるようになりますから、まだ知らない人は必見です

CRUD処理の説明もするので分からない人も安心してください

この記事を読んで分かること

  • CRUD処理
  • resources
  • ルーティングの確認方法(補足)

CRUD処理とは

CRUD処理とはデータベースを扱うシステムに必要な4つの処理機能のことです

  1. Create(データを新規作成する)
  2. Read(データを読み込む)
  3. Update(データを更新する)
  4. Delete(データを消す)

データベースとは個々のデータが登録された一つの大きな箱と言えます

CRUD処理とデータベース

Createはデータベースに対して新しいデータを登録する作業です

Readはユーザーがデータを見られるようにデータベースからデータを取り出して表示する作業です

Updateはデータベースに登録されたデータ内容を変更する作業です

Deleteはデータベースに登録されたデータを削除する作業です

**************

自分がとあるシステム上でデータを扱っているとして、少し想像してください

もしデータベースにデータを登録できなかったら、
もしデータベースのデータを見られなかったら、、
もしデータベースのデータを変更できなかったら、、、
もしデータベースのデータを削除できなかったら、、、、

超不便ですよね(笑)

だからCRUD処理はデータベースを扱うシステム(Ruby on Rails含む)に必須の機能なのです

resourcesとは

resourcesとはRailsでよく使う7種類のルーティングを一括で設定できるメソッドです

resourcesの使い方

Rails.application.routes.draw do
  resources :users
end

usersの部分はルーティングを設定したいモデル名(複数形)にします

例えばPostモデルを対象にしたければresources :postsとします

たったこれだけで対象のモデルに関する7つのルーティングがセットされます

resourcesで一括設定できるルーティング

resources :users とした場合

パスを指定する
ヘルパー
http
メソッド
パス コントローラー アクション
users_path GET /users users index
users_path POST /users users create
new_user_path GET /users/new users new
edit_user_path GET /users/:id/edit users edit
user_path GET /users/:id users show
user_path PATCH /users/:id users update
user_path DELETE /users/:id users destroy

resourcesを使うとこの基本的な7つのルーティングが一括設定されます(ただし、コントローラー内のアクションと対応するビューまでは自動生成されないので、それらは自分で書く必要があります)

アクションのcreate、show、update、destroyはCRUD処理に対応するアクションとして使えるので、効率的にCRUD処理を実装できます

パスを指定するヘルパーとは

「パスを指定するヘルパー」は実際のパスを指定するものなので、実際のパスの代わりに使うことができます

例えば
<%= link_to "ユーザーを新規作成", new_user_path %>

<%= link_to "ユーザーを新規作成", "/users/new" %>
と同じ意味になります

このヘルパーを使うと、いちいちパスを覚える必要がなくなり、表記も簡潔になるのでエラーが減ります

ルーティングの確認方法(補足)

カレントディレクトリが対象のプロジェクトの状態のターミナルで
rails routes
と打つと、 現在設定されているすべてのルーティングを確認できます

こんな感じでターミナルに表示されます↓

    Prefix Verb   URI Pattern                      Controller#Action
      root GET    /                                users#index
     users GET    /users(.:format)                 users#index
           POST   /users(.:format)                 users#create
  new_user GET    /users/new(.:format)             users#new
 edit_user GET    /users/:id/edit(.:format)        users#edit
      user GET    /users/:id(.:format)             users#show
           PATCH  /users/:id(.:format)             users#update
           PUT    /users/:id(.:format)             users#update
           DELETE /users/:id(.:format)             users#destroy

このPrefixの列の文字に"_path"をつけるとパスを指定するヘルパーとして使えます(表で確認してみてくださいね)

ちなみにこのときのroutes.rbはこれです↓

Rails.application.routes.draw do
  root to: 'users#index'
  resources :users
end

以上がresourcesについてでした。CRUD処理とセットで理解しておくと使い方がよく分かると思います!

それでは、また

-Ruby on Rails
-,

Copyright© 初心者のためのプログラミング独学ブログ , 2020 All Rights Reserved Powered by STINGER.