Rails在传递关联ID数组时不更新记录



如果您将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:[](结束

有关更多详细信息,请参阅如何允许使用强参数的数组。

相关内容

  • 没有找到相关文章

最新更新