Railsの「リソース」って何?
質問
馬鹿な質問ですが、Railsにおける"resource"とは正確には何なのか、少し混乱が残っています。この用語はあらゆるところで使用されていますが、かなり緩やかに使用されているような気がしています。モデルやコントローラで参照されていますし、文字通り
routes.rb
.
特定のルートでしょうか?例えば
map.resources
は7つのRESTful "resources"をマッピングしています。そのため、例えば
1
リソースの例としては、例えば以下のような呼び出しがあります。
index
アクションの呼び出しになります。
それは、取得されるページ/オブジェクト全体への参照でしょうか? それとも、もっと狭義には、データベースのテーブル? または、取得される行?
他の何かですか?
とにかく、誰かが私を正してくれることを願っています...。
どのように解決するには?
ユーザーがURI経由でアクセスでき、かつ CRUD (またはそのサブセット) 操作を実行できるようにするオブジェクトは、リソースと考えることができます。Railsの感覚では、それは は一般に であり、モデルによって表現され、コントローラによって操作されるデータベーステーブルです。
例えば
User
リソースがあります (
users
テーブルをDBに登録)。これを表現するのが
User
モデルにマップされ
users_controller
と
map.resources :users
(のようなルートが生成されます。
/users
(ユーザーリソースのコレクション)や
/users/1
(特定のユーザーリソース)の2種類があります。
これらのリソースに対して呼び出しを行う際に、適切な HTTP メソッドを使用することで、それらのリソースを操作します。
POST
をリソースコレクション (
/users
) は新しいレコードを作成します。
GET
はリソースのリストを取得します (
/users
) または特定のユーザ (
/users/1
).
PUT
は特定のユーザを更新します (
/users/1/
) を更新し
DELETE
はそのユーザーを破棄します。URLは同じですが、結果(とコントローラの動作)はHTTP動詞によって異なる可能性があります。しかし、考え方としては
/users/1
は、アクションに関係なく、常にID #1"を持つユーザーとやりとりしていることを意味します。
関連
-
[解決済み】警告:定数 ::Fixnum は非推奨 新しいモデルを生成するとき
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] Railsはsaveでモデル内の検証をスキップしますか?
-
[解決済み] Ruby on Railsのデータベースをパージまたは再作成する
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] エラーが発生しました。pgsqlをrailsで動作させようとすると、Peer authentication failed for user "postgres" と表示されます。
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
-
[解決済み] Rails 4で懸念事項を使用する方法
-
[解決済み】Railsの認証トークンを理解する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】なぜRuby on Railsは、http://localhost:3000 の代わりに http://0.0.0.0:3000 を使用するのですか?
-
[解決済み】取得中。「プロジェクトのクローンとマイグレート後に、「マイグレーションは保留中です。この問題を解決するには 'bin/rake db:migrate RAILS_ENV=development' を実行してください。
-
[解決済み] gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み] RailsのRootディレクトリのパス?
-
[解決済み] Oauth2 Instagram API "リダイレクトURIが登録されたリダイレクトURIと一致しない"
-
[解決済み] Herokuの問題 : あなたが探しているページは存在しません。
-
[解決済み] railsアプリケーションでCookieのオーバーフロー?
-
[解決済み] Railsはsaveでモデル内の検証をスキップしますか?
-
[解決済み] Rspec が私のモデルクラスを認識しない。初期化されていない定数エラー
-
[解決済み] 属性とカラムの違いは何ですか?