2016-02-19 1 views
0

У меня есть rails4, работающий с active_model_serializers (0.10.0.rc2). Сегодня я начинаю разрабатывать api для своего клиентского устройства. Я бегу RSpec тест, он дал мне эту ошибкуНеизвестный адаптер: json_api. Допустимые адаптеры: [": fragmentcache", ": json", ": flattenjson", ": null", ": jsonapi"]

ArgumentError: 
    Unknown adapter: json_api. Valid adapters are: [":fragmentcache", ":json", ":flattenjson", ":null", ":jsonapi"]. 

Моя конфигурация:

class BaseSerializer < ActiveModel::Serializer 
    def initialize(object, options = {}) 
    ActiveModel::Serializer.config.adapter = :json_api 
    super(object, options) 
    end 
end 

проверить камень Это все еще 0.10.0.rc2. поэтому никаких изменений в списке драгоценных камней. Интересно, что может вызвать эту проблему?

пожалуйста, помогите

ответ

0

Я нашел решение этой темы https://github.com/rails-api/active_model_serializers/issues/993. моя проблема заключалась в том, что у меня есть аббревиатура API в моей конфигурации/inflections.rb.

inflect.acronym 'RSA' 
inflect.acronym 'API' 

Адаптер json_api будет преобразован в класс. Поскольку api будет переведен на API, тогда AMS не сможет найти что-то вроде этого JsonAPI.

Чтобы решить эту проблему, я должен поставить класс непосредственно, как показано ниже:

class BaseSerializer < ActiveModel::Serializer 
    def initialize(object, options = {}) 
    ActiveModel::Serializer.config.adapter = ActiveModel::Serializer::Adapter::JsonApi 
    super(object, options) 
    end 
end