JSON-API-Resources:如何获取与特定对象相关的数据

时间:2016-10-06 11:07:10

标签: ruby-on-rails json-api jsonapi-resources

如何使用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对象。 如何显示对象的关系?

1 个答案:

答案 0 :(得分:0)

  resource = Api::V1::SubscriptionResource.new(@result, nil)
  serializer = JSONAPI::ResourceSerializer.new(Api::V1::SubscriptionResource, include: ['foo_xxx.hoo_xxx'])

我发现,在这种情况下,您必须使用_,而不是-