【问题标题】:Changing Active Model Serializers Default Adapter更改活动模型序列化程序默认适配器
【发布时间】:2016-02-10 18:59:49
【问题描述】:

如果我想从默认属性适配器切换到 json api 适配器,我应该在哪里做呢?

入门说明如下:

一般来说,作为 AMS 的用户,您将编写(或生成)这些序列化程序类。如果您想使用不同的适配器,例如 JsonApi,您可以在初始化程序中进行更改:

ActiveModel::Serializer.config.adapter = :json_api

他们指的是什么初始化程序?我要创建一个新的吗?抱歉这个菜鸟问题

【问题讨论】:

    标签: ruby-on-rails ruby json ruby-on-rails-4 active-model-serializers


    【解决方案1】:

    app/config/initializers/ 中创建一个任意名称的新文件并添加:

    ActiveModelSerializers.config.adapter = :json_api
    

    initializers 目录下的所有文件在初始化期间都会运行,与文件名无关。

    【讨论】:

      【解决方案2】:

      对于较新版本的 AMS,请将其发送至 config/initializers/ams.rb

      require 'active_model_serializers'
      
      ActiveModelSerializers.config.adapter = :json_api
      

      【讨论】:

      • 未初始化的常量 ActiveModelSerializers (NameError),我在 config/initializers/ams.rb 中添加了 require 'active_model_serializers' ActiveModelSerializers.config.adapter = :json_api,重启 Rails 服务器时抛出上述错误
      【解决方案3】:

      一般来说,初始化程序放在 Rails 应用程序中的 app/config/initializers 目录下。

      因此,在您的情况下,您可以在那里创建一个新文件:ams.rb 并将这些内容放入该文件中:

      # app/config/initializers/ams.rb    
      ActiveModel::Serializer.config.adapter = :json_api
      

      另外,请参阅github issue

      如果你想使用 :json_api 格式,你必须使用 Github 的 0.10.0 分支。

      【讨论】:

      • 您好,感谢您的回复。所以我早些时候尝试过,我得到了一个未定义的方法 `config' 用于 ActiveModel::Serializer:Class...我是否错过了创建初始化文件的步骤?
      • 您使用的是哪个版本的 AMS?
      • 看这个:github.com/rails-api/active_model_serializers/issues/803If you want to be using the :json_api format, you have to use the 0.10.0 branch off of Github
      • 未初始化的常量 ActiveModelSerializers (NameError),我已将 require 'active_model_serializers' ActiveModelSerializers.config.adapter = :json_api 放入 config/initializers/ams.rb,重启 rails server 时抛出上述错误
      猜你喜欢
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 2015-01-01
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      相关资源
      最近更新 更多