我通过重写JSONAPI :: ResourceController控制器中的create动作来实现自己的对象创建逻辑。

创建成功后,我要呈现创建的对象表示形式。

如何使用jsonapi-resources gem呈现此自动生成的JSON API响应?

调用super方法也会触发默认的资源创建逻辑,因此这对我来说不可行。

class Api::V1::TransactionsController < JSONAPI::ResourceController
  def create
    @transaction = Transaction.create_from_api_request(request.headers, params)

    # render automatic generated JSON API response (object representation)
  end
end

最佳答案

您可以执行以下操作:

class UsersController < JSONAPI::ResourceController
  def create
    user = create_user_from(request_params)

    render json: serialize_user(user)
  end

  def serialize_user(user)
    JSONAPI::ResourceSerializer
            .new(UserResource)
            .serialize_to_hash(UserResource.new(user, nil))
  end
end


这样,您将获得符合Jsonapi标准的json响应

关于ruby-on-rails - 如何在自定义 Controller 操作中呈现jsonapi-resources响应?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47132012/

10-08 22:59