我是否正確地認為,如果您將引數與像 tag_ids 一樣的定義作為一個 id 陣列傳入,Rails 將處理向一個物件添加相關的 has_many 專案?
如果是這樣,我在我的Item控制器中發布了以下內容:-
{
"title"。"瓶子"。
"tag_ids": [25, 26]
}
現在的情況是,tag_ids被忽略了。 我已經添加了id為25的標簽,但是26并沒有被包括在內。
我的控制器:-
# PATCH/PUT /api/items/1
def update
if @item.update(item_params)
渲染 json: @item, include: ['tags']
else
渲染 json: @item.errors
end
結束。
def item_params
params.require(:item).permit(:name, :tag_id)
結束。
Item has_and_belongs_to_many Tags, and they have a join table of jobs_tags. 這個關聯是有效的,因為我在上面的回應中得到了Tags的回傳。 然而,我似乎無法添加它們。 有什么想法,我可能在哪里出了問題?
我是否需要在專案模型中明確添加一個tag_ids欄位?
uj5u.com熱心網友回復:
tag_ids引數是一個陣列。但是permit(:name, :tag_ids)只允許一個tag_ids屬性。
改變權限為:
def item_params params.require(:item).permit(:name, tag_ids: [] ) end
請參閱如何允許一個帶有強引數的陣列以了解更多細節。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/313815.html
標籤:
