加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使用active_model_serializers为嵌套对象

发布时间:2020-12-17 03:23:36 所属栏目:百科 来源:网络整理
导读:我正在使用rails 4.0.0并且正在寻找一种方法来序列化自定义对象,该对象包含具有这些预定义对象的序列化程序的预定义对象. 示例:我有一个带有序列化程序StudentSerializer的模型Student.我想渲染一个JSON对象,如下所示: { user_type: "student" student: {
我正在使用rails 4.0.0并且正在寻找一种方法来序列化自定义对象,该对象包含具有这些预定义对象的序列化程序的预定义对象.

示例:我有一个带有序列化程序StudentSerializer的模型Student.我想渲染一个JSON对象,如下所示:

{ 
  user_type: "student"
  student: {
    id: 1
    email: fake@email.com
  }
}

我为Student编写的序列化程序仅序列化了email和id属性.但是当我打电话时:

render json: {user_type="student",student: stu}

我得到了具有所有属性的学生的完整对象.是否可以为JSON resposne中的嵌套对象选择带有active_model_serializers的序列化程序?

一种可能的解决方案可能是编写一个新的序列化器,它包含我刚才描述的整个对象,并将其用作序列化器,但我宁愿避免这种情况.

解决方法

我找到了解决方案.它不能自动执行,但您可以使用以下命令强制嵌套对象上的序列化程序:

render json: {user_type: "student",student: StudentSerializer.new(stu)}

一个有趣的注意事项是提交了一个pull请求,并且仍然处于active_model_serializers https://github.com/rails-api/active_model_serializers/pull/300的边缘,这将自动执行此任务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读