我使用active_model_serializers(0.10.0.rc2)gem运行rails4。今天我开始为我的客户端设备开发api。我运行rspec测试,它给了我这个错误
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 :(得分:0)
我从这个帖子https://github.com/rails-api/active_model_serializers/issues/993找到了一个解决方案。我的问题是我拥有&#39; API&#39;我的config / 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