問題タブ [active-model-serializers]

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.

0 投票する
1 に答える
335 参照

active-model-serializers - アクティブ モデル シリアライザーを使用した関連付けのエラー

ネストされた関連付けを持つモデルの json をレンダリングすると、次のエラーが発生します。

これは私のコードです:

オプションの関連付けをレンダリングするときにエラーが表示されます。

非常に単純なケースですが、問題はありませんでした。

0 投票する
1 に答える
777 参照

testing - アクティブ モデル シリアライザーをテストするために Rspec モックを Mocha に変換する

カスタム rspec サンプル グループに関する Benedikt Diecke の投稿を使用して、アクティブなモデル シリアライザーをテストしていますが、これを rspec モックの代わりに mocha を使用するように変換するのに問題があります。

http://benediktdeicke.com/2013/01/custom-rspec-example-groups/

この例には、シリアル化されるモデル クラスをモックするジェネリック メソッドが含まれています。rspec モックを使用しています。これを mocha を使用するように変換するにはどうすればよいですか?

0 投票する
8 に答える
32959 参照

ruby-on-rails-4 - ActiveModel::Serializer クラスを ActiveRecord::Relation 配列でどのように初期化しますか?

私はシリアライザーを持っています

それは適切な関連付けで初期化されます

収量

しかし、

このエラーが発生します。

単純に json: Funding.all をレンダリングしたくありません。これは、この json を Rails アプリケーション内の他のオブジェクトや angularjs アプリに渡したいからです。ありがとう、

0 投票する
2 に答える
1625 参照

ruby-on-rails-4 - ActiveModel::Serializer には明示的なレンダリング呼び出しが必要ですか?

ビュー テンプレート (html、rabl) を使用する場合、Rails は既定で、コントローラー アクション名に対応する名前でテンプレートをレンダリングするため、コントローラー アクションで明示的なレンダリング呼び出しが必要ないことを知っています。私はこのコンセプトが気に入っています (私のコントローラー コードでのレンダリングは気にしません)。

例、これは生成されたコントローラーのコードです (Rails 4.1.0):

そしてこれはシリアライザーです:

/products/1.json にアクセスすると、次の 2 つのことが起こると予想されます。

  1. 省略されるシリアライザーにリストされていないフィールド、
  2. 「製品」の最上位フィールド内にカプセル化される JSON オブジェクト全体。

ただし、これは発生せず、シリアライザー全体が無視されます。ただし、Show メソッドを次のように変更すると、次のようになります。

そして今はすべて問題ありませんが、 before_action フィルターの利点を失いました (そして、冗長なコードがあるように思えます)。

これは実際にどのように行うべきですか?

0 投票する
3 に答える
4942 参照

ruby-on-rails - ActiveModel::Serializers を使用した条件付きのサイドローディング

ActiveModel::Serializersを使用して API を構築しています。paramsを使用して条件付きでデータをサイドロードする最良の方法は何ですか?

だから私は次のようなリクエストをすることができますGET /api/customers:

GET /api/customers?embed=address,note

パラメータによっては、そのようなもの。include_[ASSOCIATION]?ActiveModel::Serializers に構文があることは知っていますが、コントローラーから効率的に使用するにはどうすればよいですか?


これは私の現在の解決策ですが、きちんとしていません:

customer_serializer.rb:

application_controller.rb:

customers_controller.rb:

もっと簡単な方法である必要がありますか?

0 投票する
1 に答える
682 参照

ruby-on-rails - Carrierwave 自動生成された json を削除する方法

jquery-file-upload を使用して、レールを使用してキャリアウェーブにアバター画像ファイルをアップロードしています。

コントローラー:

また、active_model_serializers を使用して json を生成します。

jquery-file-upload を使用してアバター画像をアップロードした後、次のような応答がありました。

ご覧のとおり、json の "image" セクションは carriverwave の追加部分です。削除したいです。どうやってするの?ありがとう

0 投票する
5 に答える
1258 参照

ruby-on-rails - ActiveModelシリアライザーで複数のSQL呼び出しを回避するには?

ActiveModel Serializers を使用して関連付けを含む一連のモデルの JSON を生成すると、大量の SQL クエリ (関連付けごとに 1 つ) が生成されることがわかりました。どうすればこれを回避できますか?

コントローラーにインクルードしようとしました:

しかし、これはうまくいかないようです。リレーションを (インクルード付きで) 直接 ArraySerializer に渡しても役に立ちません。

0 投票する
0 に答える
327 参照

ruby-on-rails - グループ化されたアクティブ レコードに適用される Rails active_model_serializer

https://github.com/rails-api/active_model_serializersのactive_model_serializer を使用しており、現在、モデルのシリアル化をグループ化されたアクティブ レコードに適用したいと考えています。

タイトル、コンテンツ、公開日を持つ BlogPost を表すモデルがあります。シリアライザーを使用して、シリアル化中に日付をよりユーザーフレンドリーな形式にフォーマットします。これはアクティブなレコードに適用された場合に機能しますが、まず、BlogPost レコードを :published および :unpublished にグループ化する必要があります。

グループ化されたデータの json 出力をレンダリングすると、BlogPost オブジェクトにシリアライザーが適用されず、データがそのまま返されます。

グループ化された (grouped_by) アクティブなレコードにシリアライザーを適用する方法を知っている人はいますか?