0

在 Rails api 项目中,我添加了这个 gem 来返回 json

gem 'jsonapi-serializer'

这些是我定义的模型,所有非常基本的东西都在进行。

class UserSequel < Sequel::Model(:users)
end

class User < ActiveRecord::Base
end

我生成了一个序列化程序类

class UserSerializer
  include FastJsonapi::ObjectSerializer
  attributes :text
end

现在的问题

# Using ActiveRecord model returns some json as expected
UserSerializer.new(User.first).serializable_hash.to_json

然而以下...

# Using Sequel model
UserSerializer.new(UserSequel.first).serializable_hash.to_json

返回此错误消息

FastJsonapi::MandatoryField(id 是 jsonapi 规范中的必填字段)

我不太明白为什么会发生这种情况,因为显然 Sequel 模型包含一列id并且调用它会返回预期的结果

UserSequel.first.id 
# => 1
4

1 回答 1

0

原来这是jsonapi-serializergem 中的一个错误,现在已经解决。(虽然在撰写本文时尚未发布)。

使用git选项获取最新版本

gem 'jsonapi-serializer', git: 'git://github.com/jsonapi-serializer/jsonapi-serializer'

https://github.com/jsonapi-serializer/jsonapi-serializer/issues/112

于 2020-08-28T16:31:38.330 回答