如何使用JSON-API-Resources获取与特定对象相关的数据。
在控制器内,
module Api
module V1
class SubscriptionsController < Api::V1::ApiController
def create
@plan = Plan.find_by(id: plan_id_param)
@result = Creditcard::CreateSubscription.call(@plan, params_ex: foo)
if @result.errors.blank?
resource = Api::V1::SubscriptionResource.new(@result, nil)
serializer = JSONAPI::ResourceSerializer.new(Api::V1::SubscriptionResource)
json_body = serializer.serialize_to_hash(resource)
render json: json_body, status: 200 # :ok
通常,我们可以做到
def show
params[:include] = "relation1.relation2.relation3" if params[:include].nil?
super
end
它已经完成了。
但在这种情况下,这是JSONAPI::SubscriptionResource
对象。
如何显示对象的关系?
答案 0 :(得分:0)
resource = Api::V1::SubscriptionResource.new(@result, nil)
serializer = JSONAPI::ResourceSerializer.new(Api::V1::SubscriptionResource, include: ['foo_xxx.hoo_xxx'])
我发现,在这种情况下,您必须使用_
,而不是-
。