Использование Sequel с jsonapi-serializer

В проекте Rails API я добавил этот гем для возврата 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 (идентификатор является обязательным полем в спецификации jsonapi)

Я не совсем понимаю, почему это происходит, потому что, очевидно, модель Sequel содержит столбец id, и вызов этого возвращает ожидаемый результат.

UserSequel.first.id 
# => 1

person Eyeslandic    schedule 13.08.2020    source источник


Ответы (1)


Оказалось, что это была ошибка в геме jsonapi-serializer, которая сейчас исправлена. (на момент написания этой статьи не выпущено).

Используйте опцию git, чтобы получить последнюю версию

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

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

person Eyeslandic    schedule 28.08.2020