将 Sequel 与 jsonapi-serializer 一起使用
Using Sequel with jsonapi-serializer
在一个 Rails api 项目中,我添加了这个 gem 用于返回 json
gem 'jsonapi-serializer'
这些是我定义的模型,都是非常基本的东西。
class UserSequel < Sequel::Model(:users)
end
class User < ActiveRecord::Base
end
我生成了一个序列化器class
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
returns这个错误信息
FastJsonapi::MandatoryField (id is a mandatory field in the
jsonapi spec)
我不太明白为什么会这样,因为显然 Sequel 模型包含一列 id
并将此 returns 称为预期结果
UserSequel.first.id
# => 1
原来这是 jsonapi-serializer
gem 中的错误,现已解决。 (截至撰写本文时尚未发布)。
使用git
选项获取最新版本
gem 'jsonapi-serializer', git: 'git://github.com/jsonapi-serializer/jsonapi-serializer'
https://github.com/jsonapi-serializer/jsonapi-serializer/issues/112
在一个 Rails api 项目中,我添加了这个 gem 用于返回 json
gem 'jsonapi-serializer'
这些是我定义的模型,都是非常基本的东西。
class UserSequel < Sequel::Model(:users)
end
class User < ActiveRecord::Base
end
我生成了一个序列化器class
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
returns这个错误信息
FastJsonapi::MandatoryField (id is a mandatory field in the jsonapi spec)
我不太明白为什么会这样,因为显然 Sequel 模型包含一列 id
并将此 returns 称为预期结果
UserSequel.first.id
# => 1
原来这是 jsonapi-serializer
gem 中的错误,现已解决。 (截至撰写本文时尚未发布)。
使用git
选项获取最新版本
gem 'jsonapi-serializer', git: 'git://github.com/jsonapi-serializer/jsonapi-serializer'
https://github.com/jsonapi-serializer/jsonapi-serializer/issues/112