0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RESTとルーティング

Posted at

#はじめに
今回はRailsアプリを開発する上で大切なRESTについて学んだことをまとめていきます。
RESTに基づいた開発を行うことによって、モデルを扱うコントローラの効率の良いパターンやセキュリティに考慮したアプリケーション開発ができます。

#リソースベースのルーティング
RESTとは、リソースを操作するアプリケーション作成のスタイルです。
Railsにおけるリソースとは、コントローラが扱う対象に名前を付けたものです。
Railsアプリの成果物に会員情報をリソースとして扱います。

config/routes.rb
resources :members

これだけでMembersControllerに対して7つのアクションを設定できます。

7つのアクション以外にも、任意のアクションをを追加できます。

config/routes.rb
resouces :members do
  collection { get "search" }  #メンバーの検索
end

その際、会員一覧のようにリソースの集合を表すアクションはcollectionブロックで囲みます。

また7つのアクションのうち、特定のアクションを使わないときはresourcesメソッドにonlyオプションを追加します。

config/routes.rb
resources :members, only: [:index, :show]

#パスとHTTPメソッド
7つのアクションを呼びだすには、パスとHTTPメソッドの組み合わせで使います。

アクション パス HTTPメソッド
index /members GET
show /member/10 GET
new /members/new GET
edit /members/10/edit GET
create /members POST
update /members/10 PATCH
destroy /members/10 DELETE

show,edit,update,destroyアクションを呼ぶときは、/members/10の[10]のように、モデルの主キーを示すidパラメータが必須です。idパラメータは、コントローラの中でparams[:id]で取り出せます。

PATCHメソッドとDELETEメソッドは、実際のリクエストではPOSTメソッドで送信されます。
Railsの隠しパラメータ_methodを使い、_method=patch、_method=deleteをリクエストに加えることでメソッドの種類を表します。

#RESTの原則
RESTとは大まかにいえば、機能ではなくリソースを中心にして物事を考えることです。
・URLで表す一意なアドレス
・リソースに対する基本操作は、取得、追加、更新、削除の4つであり、対応するHTTPメソッドGET,POST,PATCH,DELETEでリクエスト
・クライアントもサーバーもセッション状態を記憶する必要がない

#参考文献
改訂4版 基礎 Ruby on Rails
https://www.amazon.co.jp/改訂4版-Ruby-Rails-IMPRESS-KISO/dp/429500460X

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?