これは実際には、Rails で Roar と表現可能を使用するためのベスト プラクティス/使用法に関する質問です。その例は見つかりませんでした。ここに 2 つのシナリオがあります。デコレータパターンを使用しています。
シナリオ 1:
複数の属性と関連付けを持つ Product クラスがあるとします。デフォルトでは、誰かが api.com/products/1 にリクエストしたとき - 私が持っているものすべてを表示したいのですが、誰かが api.com/products/1/inventory_details のような別のアクションにリクエストした場合 - 私は欲しいだけです在庫に関連する限定的なビューを表示するため (在庫検索を高速化するため)、または誰かが api.com/products/1/assembly_details にリクエストを行った場合 - 関連するサブアセンブリのマトリックスと関連する製品の詳細を返したい.
シナリオ 1 に関する質問:
- ProductRepresenter、ProductInventoryDetailRepresenter、ProductAssemblyDetailRepresenter など、ケースごとに特定のリプレゼンテーションを作成する必要がありますか?それとも、ProductRepresenter である種のフロー制御を使用する必要がありますか?
- 複数のリプレゼンテーションを作成する場合、同じクラスに対して、represents / Respond_with pattern と Respond_to / render をどのように使用できますか?
- これをアクション レベルでオーバーライドできますか?
シナリオ 2:
内部アプリケーションから呼び出すことができる api.com/products/1 があるとしますが、クライアントにも公開したいとします。ただし、在庫の詳細や 1 つまたは 2 つの属性など、一部の属性をクライアントに表示したくありません。また、従業員のアクセス レベルに応じて、ビュー/表現を制限したいと考えています。
シナリオ 2 に関する質問:
- ProductRepresenter、ProductClientViewRepresenter など、ケースごとに特定のリプレゼンテーションを作成する必要がありますか?それとも、ProductRepresenter である種のフロー制御を使用する必要がありますか?
- 複数のリプレゼンテーションを作成する場合、同じクラスに対して、represents / Respond_with pattern と Respond_to / render をどのように使用できますか?
- これをアクション レベルでオーバーライドできますか? アクセス タイプに基づいて、admin、inventory_user、shipping_user のように指定できますか?
アドバイスをいただければ幸いです。(Roar-Rails gem の github にこれをクロスポストします)