問題タブ [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 投票する
3 に答える
3976 参照

ruby-on-rails - active_model_serializersを使用して権限(CanCanなど)をシリアル化します

active_model_serializersを使用して権限をシリアル化するにはどうすればよいですか?current_userモデルやシリアライザーのcan?メソッドにアクセスできません。

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

ruby-on-rails - josevalim / active_model_serializers コントローラーの引数エラー

Jose Valimのactive_model_serializers Gemで遊んでいます。

コントローラーでカスタムシリアライザーを呼び出そうとしていますが、必要:jsonに応じて使用していないようですActiveModel::ArraySerializer

default active_model_serializerコントローラーでを定義すると、シリアライザーは正常に動作します。ただし、コントローラーで次のようなカスタムを呼び出すと:

次のエラーが表示されます。

Ruby 1.9.2 と Rails 3.2.7 を使用しています。特定のモデルに対していくつかの異なるシリアライザーを作成する必要があるため、助けていただければ幸いです。

ありがとう!

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

ember.js - 日付属性をシリアライズする

私はactive_model_serializersとember.jsを使用しています。私のモデルの 1 つに日付属性があります。Rails では、日付属性は「YYYY-MM-DD」の形式でシリアル化されます。

問題; ember-data が javascript Date コンストラクターを使用して日付を逆シリアル化すると、「正しくない」タイムゾーンと見なされます。

*間違っているというのは適切な言葉ではありませんが、現在のタイムゾーンをデフォルトにしたいので間違っています。DS.Model の日付属性が日付 (YYYY-MM-DD) を正しく解析しない

私は、active_model_serializer が日付属性を取り、それを iso8601 形式に変換する必要があると考えています。

すべての日付オブジェクトをシリアル化する方法をactive_model_serializersに伝える方法はありますか? または、javascript でタイムゾーンの問題を修正する必要がありますか?

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

ruby-on-rails - アクティブなモデル シリアライザー

この質問は AMS 0.8 に関するものです

私は2つのモデルを持っています:

および 2 つのシリアライザー:

aUserCombinationがシリアライズされたら、サブジェクトのサブツリー全体を埋め込みたいと思います。

このセットアップを使用しようとすると、次のエラーが発生します。

をこれに変更してみUserCombinationSerializerました:

この場合、エラーは発生しませんが、 がsubject間違った方法でシリアル化されていSubjectSerializerます。

私の質問:

  1. シリアライザーで belongs_to リレーションを使用できるようにすべきではありませんか?
  2. そうでない場合-どうすれば望ましい動作を得ることができますか-SubjectSerializerを使用してサブジェクトツリーを埋め込みますか?
0 投票する
1 に答える
362 参照

ember.js - Emberデータでポリモーフィックな関係を使用できますか?

グループで使用できる複数のタイプの「ウィジェット」があり、レール内では、タイプに関係なく、すべてのウィジェットを返すポリモーフィックな関係があります。

たとえば、@ group.widgetsを呼び出して、使用されているものに関係なく、さまざまなタイプのウィジェットをすべて返すことができます。

polymorphic=>trueをシリアライザーに追加した場合。例えば:

SystemStackError(スタックレベルが深すぎる)で終わる再帰ループが発生するようです。

私はここでトリックを逃していますか、それともこれはまだできないことですか?

ありがとう、ダン

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

ruby-on-rails - Rails で ActiveModel::Serializer を使用する - JSON データは json とインデックス応答で異なります

シリアル化データを制御するために gem を使用してactive_model_serializersいますが、奇妙な動作が見られます。私のコードは次のようになります。

モデルとシリアライザー

コントローラ

ビュー (アプリ/ビュー/ユーザー/index.html.erb)

ここで、ビューをレンダリングすると、full_name属性 (モデル内のメソッドによって生成された) がデータにないことがわかります。

アクセスすると/users.json(ファイルにある)、正しい JSON が表示resources :usersされます。routes.rb

私は何が間違っているのかわかりませんでした - どんな入力も役に立ちます。ありがとう。

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

ruby-on-rails - Rails/Ember - active_model_serializer - サイドローディング時の未定義メソッド「オブジェクト」

Ember アプリケーションの active_model_serializer でデータをサイドロードしようとしていますが、オブジェクトを含めようとすると NoMethodError が発生します。

#Email:0x00000100d33d20 の未定義のメソッド「オブジェクト」

次のように :include => true が設定されている場合にのみ発生します。

私のモデルは次のようになります。

私のコントローラーは次のようになります。

前もって感謝します。

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

ruby-on-rails - ActiveModel::Serializer:階層的な Rails モデルから検証エラーを収集する方法は?

階層的な Rails モデルがあります。検証されると、モデルの各インスタンスには、errors検証からのエラーの配列である属性があります。これらのエラーは、エラーを生成したメイン モデルの階層に一致する JSON オブジェクトにシリアル化する必要があります。サブクラスで既に構成されている関連付けを使用して、階層モデルを走査し、エラーをオブジェクトに抽出して JSON としてクライアントに送信ActiveModel::Serializerできるように、コードを活用する方法はありますか?ActiveModel::Serializer

これが私の階層モデルです:

サンプル値が範囲外の場合に次の JSON を生成したい

おそらく、ActiveModel::Serializerサブクラスはこれを直接行うことができます。しかし、そうでない場合、エラー オブジェクトを作成するときにシリアライザーで定義された関連付けを検査する方法はありますか?

0 投票する
4 に答える
4578 参照

ruby-on-rails - ID とサイドローディングが埋め込まれた Ember-Data および Active Model Serializers の has_many 構成

Ember-Data は設計上、Active Model Serializers と互換性があるはずですがhas_many、埋め込まれた ID との関係をシリアル化することについては歩調を合わせていないようです。

たとえば、シリアライザー

JSONを生成します

しかし、Ember Data のデフォルト設定では、

は、コメントの関連付けがサフィックスcomments: [...]なしでシリアル化されることを想定しています ( Ember.js ガイドの REST アダプター セクションの関係サブセクションを参照してください)。_ids

回避策として次のことを試しました。

動作しますが、サイドローディングを有効にするために追加embed :ids, :include => trueしても、AMS はそれが関連付けであることを認識していないため、何もしません。

編集: active_model_serializers (0.6.0)gem と Ember-Data リビジョン 11を使用しています

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

ruby-on-rails - Rails + Ember.js + Devise フリーランス ジャーナリスト アプリ - データ スコープ

申し訳ありませんが、私は長い間 ember.js ランドにいました。Rails + active_model_serializers JSON api の基本をいじっています。

たとえば、私がフリーランスのジャーナリストで、ライターが単一のユーザー アカウントを介してさまざまな会社固有のサイトに記事を公開できるアプリを作成しているとします。

Rails 3+、Devise、Active_Model_Serializers、Ember-Data、および Ember.js を使用しています。

ユーザーがサイトにアクセスしてログインし (devise を使用すると非常に簡単)、Rails ページにリダイレクトされ、どの会社のダッシュボードにアクセスしたいか (リンクをクリックするだけで) を選択できるフローをセットアップしたいと考えています。 .

ここで、トリッキーな部分が来ます。彼が特定の会社のリンクをクリックすると、シリアライゼーション スコープが current_user だけでなく current_company_membership または current_company に設定されている ember アプリを含む Rails ビューに移動する必要があります。

current_company_membership によって指定された current_company だけにデータをスコープし、このデータを ember アプリに渡す rails または active_model_serializers メソッドを作成するにはどうすればよいですか?


また、おまけとして、current_user の名前とメール アドレスが必要です。この情報を ember アプリにも渡すにはどうすればよいですか? この男の記事を見たことがありますが、current_user ではなく company_membership だけでデータのスコープを設定しようとしてもうまくいきませんでした。

どんな助けでも素晴らしいでしょう!必要に応じて詳細とコードを追加しますが、ここでかなり単純なことを忘れている気がします。