1. ホーム
  2. ruby-on-rails

Railsの「リソース」って何?

2023-07-07 13:39:22

質問

馬鹿な質問ですが、Railsにおける"resource"とは正確には何なのか、少し混乱が残っています。この用語はあらゆるところで使用されていますが、かなり緩やかに使用されているような気がしています。モデルやコントローラで参照されていますし、文字通り routes.rb .

特定のルートでしょうか?例えば map.resources は7つのRESTful "resources"をマッピングしています。そのため、例えば 1 リソースの例としては、例えば以下のような呼び出しがあります。 index アクションの呼び出しになります。

それは、取得されるページ/オブジェクト全体への参照でしょうか? それとも、もっと狭義には、データベースのテーブル? または、取得される行?

他の何かですか?

とにかく、誰かが私を正してくれることを願っています...。

どのように解決するには?

ユーザーがURI経由でアクセスでき、かつ CRUD (またはそのサブセット) 操作を実行できるようにするオブジェクトは、リソースと考えることができます。Railsの感覚では、それは は一般に であり、モデルによって表現され、コントローラによって操作されるデータベーステーブルです。

例えば User リソースがあります ( users テーブルをDBに登録)。これを表現するのが User モデルにマップされ users_controllermap.resources :users (のようなルートが生成されます。 /users (ユーザーリソースのコレクション)や /users/1 (特定のユーザーリソース)の2種類があります。

これらのリソースに対して呼び出しを行う際に、適切な HTTP メソッドを使用することで、それらのリソースを操作します。 POST をリソースコレクション ( /users ) は新しいレコードを作成します。 GET はリソースのリストを取得します ( /users ) または特定のユーザ ( /users/1 ). PUT は特定のユーザを更新します ( /users/1/ ) を更新し DELETE はそのユーザーを破棄します。URLは同じですが、結果(とコントローラの動作)はHTTP動詞によって異なる可能性があります。しかし、考え方としては /users/1 は、アクションに関係なく、常にID #1"を持つユーザーとやりとりしていることを意味します。