私が見つけたチュートリアルからレールアプリケーションを作成しています。JSONAPIアクティブモデルシリアライザを使用してそのフォーマットのレスポンスを生成しようとしています。 、私は初期化子でJSONAPI Active Modelシリアライザでモデルの関係が仕様どおりにオブジェクト自体に分離されない
を入れている:私のgemfileで
ActiveModelSerializers.config.adapter = :json_api
を:
gem 'active_model_serializers', '~> 0.10.0.rc3'
私はあたりのように2つのリソース・レベル・キー、データとの関係を期待していjson-apiの仕様。しかし、それ自身のオブジェクトとの関係を分離していません。これは/ contactに対する私の要求です。
{
"data": [
{
"id": "1",
"type": "contacts",
"attributes": {
"family-name": "La",
"given-names": "ch",
"company": {
"id": 1,
"name": "Lorem Inc",
"phone": "+1 (415) 555-1234",
"email": "[email protected]",
"website": "www.lorem.inc",
"address": "213 Main St. 94063 San Francisco, CA",
"customer_id": "10001",
"additional_info": "",
"created_at": "2017-01-31T05:47:02.024Z",
"updated_at": "2017-01-31T05:47:02.024Z"
},
"title": null,
"phone": null,
"email": null,
"website": null,
"address": null,
"customer-id": null,
"additional-info": null
}
}
]
}
会社は連絡先のbelongs_toです。ここに私のシリアライザがあります。
class CompanySerializer < ActiveModel::Serializer
attributes :id, :name, :phone, :email, :website, :address, :customer_id, :additional_info
end
class ContactSerializer < ActiveModel::Serializer
attributes :id, :family_name, :given_names, :company, :title, :phone, :email, :website, :address, :customer_id, :additional_info
end
これらは私のモデルです:他に
class Contact < ApplicationRecord
belongs_to :company
validates :family_name, presence: true
validates :given_names, presence: true
end
class Company < ApplicationRecord
validates :name, presence: true
end
すべてがちょうどレールのCLIから生成されたコードをデフォルトです。私がここに追加する必要があるのかどうか分からないのは、デフォルトのレール動作がシリアライザのすべてを表示する応答を生成することだと私は理解しているからです。私はjsonapiアダプターが私のためにそれを分離する必要があると仮定しています。
jsonapiアダプタを正しく動作させるには、他に何が必要ですか?
Xポストに答えましたactive_model_serializers/issues/2044#issuecomment-276693712 – BF4