ruby-on-rails-3.2 - 自定义序列化器的输出

标签 ruby-on-rails-3.2 active-model-serializers

所以我想使用最近添加到 Rails 的新 [ActiveModel::Serializer][1]

如果我像这样编写序列化器:

class PatientSerializer < ActiveModel::Serializer
  attributes :patient_money, :doctor_name

  def doctor_name
    object.doctor.name
  end
end

我得到的JSON是这样的:

[
// HERE.... 
   {
      "patient_money":"40.0",
      "doctor_name":"Ostad"
   },
   {
      "patient_money":"30.0",
      "doctor_name":"Oz"
   },
   {
      "patient_money":"20.0",
      "doctor_name":"Phil"
   }
]

这非常接近我想要的,但是在我上面放置“HERE”注释的地方,我想要一个 JSON 包装层,所以我可以说例如 my_results 然后将这三个 JSON 结果像数组一样包裹在它周围,就像我们在 JBuilder 中创建一个新元素时说 json.my_results

最佳答案

好的,我明白了。 在发送 respond_with(@blah) Controller 中,我应该传递一个根元素并将其命名为我喜欢的任何名称,例如:

respond_with(@blah, root: 'my_results')

关于ruby-on-rails-3.2 - 自定义序列化器的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15376701/

相关文章:

ruby-on-rails - jsonapi 和 active_mode_serializers 如何获取响应中的关系属性?

ruby-on-rails - Rails Serializer 不过滤数据

ruby-on-rails - Rails 安全补丁 : SQL Injection Flaw

ruby-on-rails - 创建使用模型属性而不是 Rails 中的 ID 的自定义路由

ruby-on-rails - 如何在我的 Controller 规范中获取 view_context 以测试事件模型序列化程序

ruby-on-rails - ActiveModel 序列化程序继承

ruby-on-rails - ActiveModel::Serializer 可以像 Rails Controller 那样具有命名空间名称(嵌套)吗?

ruby-on-rails-3.2 - 在自定义初始化程序中使用模块时未初始化的常量

ruby - 安装libv8(3.11.8.13)出错,Bundler无法继续

ruby - 如何在 Ruby 中检查参数 "param[:some_value]"