JSONAPI Active Model Serializer 没有按照规范描述的那样将模型关系分离到它自己的对象
JSONAPI Active Model Serializer not separating model relationships to it's own object as spec describes
我正在根据我找到的教程构建一个 rails 应用程序,并尝试使用 JSONAPI Active Model Serializer 生成该格式的响应。
在初始化程序中,我输入了:
ActiveModelSerializers.config.adapter = :json_api
在我的 gemfile 中:
gem 'active_model_serializers', '~> 0.10.0.rc3'
我希望根据 json-api 规范获得两个资源级密钥、数据和关系。但是,并没有分离出与其自身对象的关系。这是我对 /contacts 的请求。
{
"data": [
{
"id": "1",
"type": "contacts",
"attributes": {
"family-name": "La",
"given-names": "ch",
"company": {
"id": 1,
"name": "Lorem Inc",
"phone": "+1 (415) 555-1234",
"email": "office@lorem.inc",
"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
}
}
]
}
公司是 belong_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
其他一切都是 rails cli 默认生成的代码。我不确定我还需要在这里添加什么,因为据我所知,默认 rails 行为是生成一个响应,该响应将显示序列化程序中的所有内容。我假设 jsonapi 适配器应该为我把它分开。
我还需要做什么才能使 jsonapi 适配器正常工作?
我的序列化程序中缺少关系!
也在 x post
中回答
https://github.com/rails-api/active_model_serializers/issues/2044
我正在根据我找到的教程构建一个 rails 应用程序,并尝试使用 JSONAPI Active Model Serializer 生成该格式的响应。
在初始化程序中,我输入了:
ActiveModelSerializers.config.adapter = :json_api
在我的 gemfile 中:
gem 'active_model_serializers', '~> 0.10.0.rc3'
我希望根据 json-api 规范获得两个资源级密钥、数据和关系。但是,并没有分离出与其自身对象的关系。这是我对 /contacts 的请求。
{
"data": [
{
"id": "1",
"type": "contacts",
"attributes": {
"family-name": "La",
"given-names": "ch",
"company": {
"id": 1,
"name": "Lorem Inc",
"phone": "+1 (415) 555-1234",
"email": "office@lorem.inc",
"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
}
}
]
}
公司是 belong_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
其他一切都是 rails cli 默认生成的代码。我不确定我还需要在这里添加什么,因为据我所知,默认 rails 行为是生成一个响应,该响应将显示序列化程序中的所有内容。我假设 jsonapi 适配器应该为我把它分开。
我还需要做什么才能使 jsonapi 适配器正常工作?
我的序列化程序中缺少关系!
也在 x post
中回答https://github.com/rails-api/active_model_serializers/issues/2044