問題タブ [nested-resources]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rest - REST 複合/複合/ネストされたリソース
私は、REST ベースの API の概念に対処するための最良の方法について頭を悩ませようとしています。他のリソースを含まないフラットなリソースは問題ありません。問題が発生しているのは、複雑なリソースです。
たとえば、漫画本のリソースがあります。、、 など、ComicBook
あらゆる種類のプロパティがあります。author
issue number
date
漫画本にも1..n
表紙のリストがあります。これらのカバーは複雑なオブジェクトです。それらには、カバーに関する多くの情報が含まれています。アーティスト、日付、さらには Base 64 でエンコードされたカバーの画像です。
とりあえず、コミックと、base64 で処理された画像を含むすべてのカバーを返すことができましGET
た。ComicBook
それはおそらく、コミックを 1 冊入手するのに大したことではありません。しかし、システム内のすべてのコミックをテーブルに一覧表示するクライアント アプリを構築しているとします。
テーブルにはリソースのいくつかのプロパティが含まれますが、ComicBook
すべてのカバーをテーブルに表示する必要はありません。それぞれが複数の表紙を持つ 1000 冊の漫画本を返すと、途方もなく大量のデータが送信され、その場合、エンド ユーザーにとって必要のないデータになります。
私の本能はCover
、リソースを作成し、ComicBook
カバーを含めることです。だから今Cover
はURIです。GET
コミックブック作品では、巨大なCover
リソースの代わりに、各カバーの URI を送り返し、クライアントは必要に応じてカバー リソースを取得できます。
現在、新しい漫画の作成に問題があります。確かに、 を作成するときに少なくとも 1 つのカバーを作成したいと思うComic
でしょう。実際、それはおそらくビジネス ルールです。最初に を送信し、そのカバーの URI を取得してから、リスト内のその URI を使用して を実行するか、吐き出されるものとは異なる外観のリソースを取得
することで、クライアントにビジネス ルールを強制するように強制します。アウト。およびの着信リソースはディープ コピーであり、発信には依存リソースへの参照が含まれます。Cover
POST
ComicBook
POST
ComicBook
POST
GET
GET
いずれにせよ、Cover
リソースはおそらく必要です。クライアントとして、場合によってはカバーの方向性に対処したいと思うからです。したがって、依存リソースのサイズに関係なく、問題は一般的な形で存在します。一般に、クライアントにリソースがどのように構成されているかを「知る」ことを強制せずに、複雑なリソースをどのように処理しますか?
ruby-on-rails - 期待どおりにネストされたリソースを読み込めません
Cancanは、ユーザーがログインしているときは正常に機能しています。ただし、ユーザーが「ゲスト」の場合は、写真の親投稿に制限employees_only
フラグが設定されている写真ではなく、一部の写真を表示できるようにしたいと思います。
問題はemployee_only
、配列内の投稿に関連する写真がある場合@photos
、CancanがスローすることCanCan::AccessDenied in PhotosController#index
です。しかしload_and_authorize_resource :photo, :through => :event
、コントローラーでそれらの無許可のレコードをから排除するべきではありません@photos
か?
ability.rb
event.rb:
post.rb
photos_controller:
user.rb#この問題のトラブルシューティングにこれが必要かどうかはわかりませんが、JIC:
ruby-on-rails - 結合テーブルを介してネストされたリソースを持つRESTfulform_for
結合テーブルを使用して関連付けを追跡する「タグ」モデルに関連付けることができる「ジョブ」のモデルがあるアプリを作成しようとしています。フォームにリソースベースのform_foraddチェックボックスを使用して、ユーザーがジョブに関連付けるタグを選択できるようにすることが可能であることを知りたいと思います。タグのリストは管理者によって設定されるため、管理者は新しいタグを作成するのではなく、関連付けを作成します。そして、私はそれを行う方法を理解することはできません。ほとんどの例では、記事にコメントが多数あり、新しいコメントが作成されており、私がやろうとしていることとは大きく異なるブログシナリオを使用しています。
モデル:
テーブル移行に参加:
ルート:
ERB:
これは、リソースベースのform_forを介しても可能ですか?この種のリソース関係に関連する例は見つかりませんでした。
ruby-on-rails - 別のコンテキストで利用可能なRailsネストされたリソース
ネストされた画像を含むギャラリーを計画しているので、画像はギャラリーに属します。次に、特定の画像がフロントページに表示されるかどうかを判断するブールオプションを画像に持たせたいと思います。ブール型プロパティを使用してネストされたリソースを設定するのは簡単ですが、そのプロパティがtrueに設定されているすべての画像にアクセスする方法をまだ理解していません。
各ギャラリーと画像を繰り返すことが、それを行う唯一の方法ですか?もっと良い方法があるに違いないように私には思えます...
ruby-on-rails - Rails 3-コントローラーでネストされたリソースクエリを処理する最良の方法は?
Rails 3について私が学んだことが1つあるとすれば、何かをするのに苦労しているのなら、おそらくそれは間違っているのでしょう。だから私は助けを探しています。
多対多の関係にあるモデルがいくつかあります。
モデルに関連付けを問題なく作成できます。私の問題は、これらの関係を処理するコントローラーを構築する方法にあります。私がこれでどこに行くのかわからない場合は、例を挙げてみます。
例えば...
上記のモデルがあるとしましょう。これが私のリソースになります...
したがって、これを少し短くするために、アカウントのすべての場所のリストが必要だとします。上記のルートは、おそらくアカウント/1/場所になります。したがって、locations#indexに着陸します。
うまくいけば、この時点で私の例を台無しにしていませんが、実際には複数のジョブがあるため、このアクションを構築するための最良の方法は何ですか...少なくともアカウント、連絡先、およびすべての場所の場所。
だから私はこのようなものになってしまいます...
更新#1:明確にするために、モデルの関係を変更することを示唆するいくつかの回答を得ています。この時点で関係を変更できないレガシーシステムを使用しています。最終的にはデータベースと関係をクリーンアップすることが私の目標ですが、今のところできません。したがって、この構成で機能するソリューションを見つける必要があります。
ruby-on-rails - Rails 3ネストされたリソースルートは親の制約を継承しますが、それを回避するには?
親リソースの「id」に制約を定義すると、次のようになります。
ネストされたリソースは、独自の ID に対してその制約を継承するため、生成されたルートは次のようになります。
したがって、Bar リソースの「id」パラメーターをそれほど制限したくありません。
現在、必要なルートを手動で 1 つずつマップしているだけですが、リソース ヘルパーで生成したいと思っています。どうやってやるの?
sql - ネストされたリソース内のRails3SQLクエリ
Railsアプリケーションに一連のネストされたリソース(Magazine
、、、Edition
およびAd
)があるとします。たとえば、雑誌には多くのエディションがあり、その後に多くの広告があります。
特定の雑誌のすべてのエディションですべての広告を作成し、作成日などで並べ替えるクエリを実行するにはどうすればよいですか?
理想的には、エディションごとにクエリを実行してから後続の配列を結合するのではなく、単一のSQLクエリを使用してすべての結果を含む配列を作成したいと思います。
ruby-on-rails-3 - Rails3 のネストされたリソース、ルートの一致なし
Rails 3にネストされたルートがあり、次のようにマッピングされています
しかし、 http://localhost:3000/maps/35/versions/2に接続しようとすると、取得します
「/maps/35/versions/2」に一致するルートはありません
および rake ルートで GET /maps/:map_id/versions/:id(.:format) {:controller=>"versions", :action="show"} または同様の (:id を使用) には、バージョンを持つ他のルートがありません正しく動作します
どうしたの?
編集 2: これは完全な rake ルートの出力です
ruby-on-rails - ネストされたリソースを持つ form_for は、ポストリクエストを送信しません
最初: このトピックに関するすべての投稿を読み、ウェブ全体を検索したことを約束しますが、まだわかりません...
旅行 (has_many) と宿泊施設 (belongs_to) をモデル化する必要があります。宿泊施設は Trip にネストされています。
コントローラーは次のようになります。
フォーム:
フォームは正しい html をレンダリングします (私が見る限り):
わかりましたので、フォームを送信しても何も起こりません。サーバー ログを調べると、get-request が new-Form をレンダリングしていることがわかります。しかし、送信時に反応がありません... フォームはまったく送信されていませんか? なんで?まったくわかりません。
他に何を試しましたか?
何もない。
何もありません。
忘れてください。
誰でも助けてくれますか。どこで掘り始めることができるか、手がかりはありますか?
前もって感謝します!