問題タブ [representable]
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.
ruby-on-rails - ROAR gem を使用して基準に基づいて同じクラスの複数の表現を作成する戦略は?
これは実際には、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 にこれをクロスポストします)
ruby-on-rails - オプション ブドウの代表者
次の宝石を使用して、Representers を使用して Rails API に取り組んでいます: Grape、Roar、およびGrape-Roar
ここで、ここで説明されているように、API エンドポイントから渡す条件に基づいて、特定のプロパティをリピーターに含める (または含めない) 条件を追加しようとしています(表現可能な gem は Roar gem によって使用されることに注意してください)。
私はおそらく何かを見落としていますが、オプションを表現者に渡す方法がわからないので、条件に基づいてプロパティを提示できます
たとえば、ブドウのエンドポイントの 1 つで、次のように呼び出します。
present payment_object, with: PaymentRepresenter, include_orders: true
PaymentRepresenter で支払いオブジェクトを提示します。ご覧のとおり、支払いに関連する注文も含めたいので、支払い代表者で次のことを試みました。
ただし、 args[:include_orders] は nil です
ここで私が間違っていることを誰かが知っていますか?
前もって感謝します!
ruby-on-rails - 入れ子になった RoR を配列で表現できるようにする
表現可能な gemを使用して、配列内にオブジェクトをネストしようとしています。その配列にはオブジェクトが 1 つしかありません。これを達成する方法がわかりません。何か案は?これは、Google タグ マネージャーが拡張 e コマース トラッキングを処理する方法によるものです。
吐き出します:
私が望むときは、次のように出てくることです:
ruby-on-rails - Representable gem: ネストされたドキュメント (ハッシュ) の処理に関する問題
私は Representable gem を使用しており、ネストされたドキュメントのプロパティにアクセスするためのreadmeの指示に従っています。
代表者とテスト:
ここでは、最初のアサーションは成功しますが、2 番目のアサーション (会場) は失敗します。私のnested
ブロックは何もgame.venue_id
していないようnil
です.
readme を振り返ってみると、次のように書かれていることに気付きました。
「 ::nested 内部はデコレータを使用して実装されていることに注意してください。」
...そしてコード例ではClass SongRepresenter < Representable::Decorator
. そこで、代表者を次のように書き直しました。
私のテストでは、次のgame
ようにオブジェクトを設定しました。
しかし、私はまだ同じ問題を抱えています:game.venue # => nil
この宝石を使用した経験のある人は、私が間違っていることを指摘できますか??
ruby-on-rails - Rails 4: 表現可能な gem を使用した JSONAPI の解析
representer
フラットな JSON で次の作業を行っています。
現在、 JSONAPI 1.0の仕様を実装していますが、次の json を解析できるリピーターを実装する方法がわかりません。
ヒントや提案を事前にありがとう
アップデート:
実用的なソリューションを含むGist