如果您将params与tag_ids之类的定义作为id数组传递,Rails将处理向对象添加关联的has_many项的说法是否正确?
如果是这样的话,我会在我的物品管理员上发布以下内容:-
{
"title": "Bottle",
"tag_ids": [25, 26]
}
现在的情况是tag_id被忽略了。我已经添加了id为25的标签,但26不包括在内。
我的控制器:-
# PATCH/PUT /api/items/1
def update
if @item.update(item_params)
render json: @item, include: ['tags']
else
render json: @item.errors
end
end
def item_params
params.require(:item).permit(:name, :tag_ids)
end
项has_and_belongs_to_many
标记,并且它们具有jobs_tags
的联接表。这个关联之所以有效,是因为我在上面的回复中得到了返回的标签。然而,我似乎无法添加它们。你知道我哪里可能出错了吗?
是否需要将tag_ids
字段显式添加到Item模型?
tag_ids
参数是一个数组。但是permit(:name, :tag_ids)
只允许一个tag_ids
属性。
将权限更改为:
def item_paramsparams.require(:item(permit(:name,tag_ids:[](结束
有关更多详细信息,请参阅如何允许使用强参数的数组。