Rails使用id数组与对象数组

时间:2016-09-02 07:04:49

标签: ruby-on-rails api post

如果我有一个“比尔”实体,我可以通过REST API创建该账单实例,方法是在我创建新账单时将订购的食品分配给账单。

即。我可以通过以下参数向www.server.com/api/bills发送POST请求:

{
    cost: 30.0,
    foods: [23, 1, 14]
}

发送一组id是更好还是发送一个对象数组是正常做法?如下所示:

{
    cost: 30.0,
    foods: [
        {
            id: 23,
            name: "Chicken Parmesan",
            price: 10.0
        },
        {
            id: 1,
            name: "Scotch Fillet Steak",
            price: 10.0
        },
        {
            id: 14,
            name: "Baramundi",
            price: 10.0
        },
    ]
}

1 个答案:

答案 0 :(得分:3)

是的,发送ID完全没问题,但您要检查分配的ID是否合法。

如果您还没有ID,并且想要通过关联创建对象(或更新!) - 发送带有对象的嵌套数组是可行的方法。

另外,忘了提! 如果您要发送只是 ID,则表示您正在发送"特殊" rails field - food_ids,Rails可以发挥魔力。这只是一个字段的更新,这是真正的REST。

如果我不需要更换或创建食物,我会选择food_ids,如果我需要,我会选择foods_attributes(嵌套属性)到。