Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未知适配器:json_api。有效的适配器是:[“fragmentcache”、“json”、“FlattJSON”、“null”、“jsonapi”]_Ruby On Rails_Active Model Serializers - Fatal编程技术网

Ruby on rails 未知适配器:json_api。有效的适配器是:[“fragmentcache”、“json”、“FlattJSON”、“null”、“jsonapi”]

Ruby on rails 未知适配器:json_api。有效的适配器是:[“fragmentcache”、“json”、“FlattJSON”、“null”、“jsonapi”],ruby-on-rails,active-model-serializers,Ruby On Rails,Active Model Serializers,我让rails4与活动的\u model\u序列化程序(0.10.0.rc2)一起运行。今天我开始为我的客户端设备开发api。我运行rspec测试,它给了我这个错误 ArgumentError: Unknown adapter: json_api. Valid adapters are: [":fragmentcache", ":json", ":flattenjson", ":null", ":jsonapi"]. 我的配置: class BaseSerializer < Act

我让rails4与活动的\u model\u序列化程序(0.10.0.rc2)一起运行。今天我开始为我的客户端设备开发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
class BaseSerializer
我检查gem,它仍然是0.10.0.rc2。因此,创业板名单没有变化。我想知道是什么导致了这个问题


请帮助

我从这个线程中找到了一个解决方案。我的问题是,我的config/inflections.rb中有“API”的首字母缩写

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
class BaseSerializer