如何使用活动模型序列化程序允许嵌套属性?

胡安·帕拉

我正在使用ruby on rails 中的 api 中的active_model_serializers,我有一个控制器方法,我在其中保存发票及其嵌套项目并进行一些计算,问题是在包含序列化程序之后,嵌套属性受到限制,我可以' t 访问它们。

根据一些文档,我有这种方式的代码,但它不起作用

#Controller

 def invoice_params
        params.require(:invoice).permit(:person_id, :date, sales_attributes: [:reference_id, :quantity, :price])
 end

#Model

class Invoice < ApplicationRecord
    belongs_to :person
    has_many :sales
    accepts_nested_attributes_for :sales, allow_destroy: true
end

#Serializer

class InvoiceSerializer < ActiveModel::Serializer
    attributes :id, :date, :total, :profit, :consecutive, :person_id
    has_many :sales, root: :sales_attributes
    belongs_to :person
end

我发送的 json 请求是:

{
    "person_id": 4,
    "date": "2019-03-20",
    "sales": [
        {
            "reference_id":1,
            "quantity": 90000,
            "price": 240
        },
        {
            "reference_id":1,
            "quantity": 50000,
            "price": 240
        }
    ]
}

有人知道会发生什么吗?在包含序列化程序 gem 之前它工作正常。

提前致谢!

卡迈勒·潘迪

改变

def invoice_params
        params.require(:invoice).permit(:person_id, :date, sales_attributes: [:reference_id, :quantity, :price])
 end

def invoice_params
        params.require(:invoice).permit(:person_id, :date, sales_attributes: [:id, :reference_id, :quantity, :price])
 end

{
    "person_id": 4,
    "date": "2019-03-20",
    "sales": [
        {
            "reference_id":1,
            "quantity": 90000,
            "price": 240
        },
        {
            "reference_id":1,
            "quantity": 50000,
            "price": 240
        }
    ]
}

{
    "person_id": 4,
    "date": "2019-03-20",
    "sales_attributes": [
        {
            "reference_id":1,
            "quantity": 90000,
            "price": 240
        },
        {
            "reference_id":1,
            "quantity": 50000,
            "price": 240
        }
    ]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用活动模型序列化器序列化2级嵌套属性

来自分类Dev

活动模型序列化程序属性上的嵌套查询

来自分类Dev

如何在没有活动记录模型的情况下使用活动模型序列化器?

来自分类Dev

使用活动模型序列化程序为每个序列化项目添加全局根密钥和特定根密钥

来自分类Dev

在Rails API活动模型序列化程序中为关联属性使用其他键名

来自分类Dev

Django:如何在序列化程序的自定义方法中使用模型属性?

来自分类Dev

活动模型序列化器中的条件属性

来自分类Dev

如何在 Django Rest Framework 中使用序列化程序检索具有嵌套关系的模型数据?

来自分类Dev

强制活动模型序列化程序返回关联

来自分类Dev

活动模型序列化器-如何有条件地包含属性?滑轨

来自分类Dev

活动模型序列化程序:如何将选项传递给集合?

来自分类Dev

活动模型序列化程序无法与Rails-api gem一起使用

来自分类Dev

在 django 序列化程序中排除嵌套模型字段

来自分类Dev

如何使用django-rest序列化django中的一些嵌套关系模型?

来自分类Dev

如何使用DRF在Django中序列化一些嵌套的关系模型?

来自分类Dev

如何在C#中使用JavascriptSerializer序列化嵌套实体(模型)?

来自分类Dev

如何部分使用序列化程序

来自分类Dev

无法使用Highcharts属性序列化模型

来自分类Dev

序列化 sequelize 嵌套模型

来自分类Dev

在嵌套序列化程序中使用 selected_related()

来自分类Dev

如何为我的 Viewset 的“创建”和“更新”方法使用相同的模型序列化程序

来自分类Dev

如何使用active_model_serializers为嵌套对象选择序列化程序

来自分类Dev

扩展django rest框架以允许在嵌套序列化程序中继承上下文

来自分类Dev

活动模型序列化程序关联,除非object.user == current_user

来自分类Dev

活动模型序列化程序0.9.4堆栈太深错误

来自分类Dev

如何使用已加载的关联序列化/反序列化Ecto模型?

来自分类Dev

如何在同一序列化器中使用嵌套序列化器?

来自分类Dev

如何使用带有DRF序列化程序的camelCase属性生成有效负载

来自分类Dev

Django:彼此嵌套序列化程序

Related 相关文章

  1. 1

    使用活动模型序列化器序列化2级嵌套属性

  2. 2

    活动模型序列化程序属性上的嵌套查询

  3. 3

    如何在没有活动记录模型的情况下使用活动模型序列化器?

  4. 4

    使用活动模型序列化程序为每个序列化项目添加全局根密钥和特定根密钥

  5. 5

    在Rails API活动模型序列化程序中为关联属性使用其他键名

  6. 6

    Django:如何在序列化程序的自定义方法中使用模型属性?

  7. 7

    活动模型序列化器中的条件属性

  8. 8

    如何在 Django Rest Framework 中使用序列化程序检索具有嵌套关系的模型数据?

  9. 9

    强制活动模型序列化程序返回关联

  10. 10

    活动模型序列化器-如何有条件地包含属性?滑轨

  11. 11

    活动模型序列化程序:如何将选项传递给集合?

  12. 12

    活动模型序列化程序无法与Rails-api gem一起使用

  13. 13

    在 django 序列化程序中排除嵌套模型字段

  14. 14

    如何使用django-rest序列化django中的一些嵌套关系模型?

  15. 15

    如何使用DRF在Django中序列化一些嵌套的关系模型?

  16. 16

    如何在C#中使用JavascriptSerializer序列化嵌套实体(模型)?

  17. 17

    如何部分使用序列化程序

  18. 18

    无法使用Highcharts属性序列化模型

  19. 19

    序列化 sequelize 嵌套模型

  20. 20

    在嵌套序列化程序中使用 selected_related()

  21. 21

    如何为我的 Viewset 的“创建”和“更新”方法使用相同的模型序列化程序

  22. 22

    如何使用active_model_serializers为嵌套对象选择序列化程序

  23. 23

    扩展django rest框架以允许在嵌套序列化程序中继承上下文

  24. 24

    活动模型序列化程序关联,除非object.user == current_user

  25. 25

    活动模型序列化程序0.9.4堆栈太深错误

  26. 26

    如何使用已加载的关联序列化/反序列化Ecto模型?

  27. 27

    如何在同一序列化器中使用嵌套序列化器?

  28. 28

    如何使用带有DRF序列化程序的camelCase属性生成有效负载

  29. 29

    Django:彼此嵌套序列化程序

热门标签

归档