簡體   English   中英

強參數中允許的已提交數組參數消失

[英]Submitted array param that is permitted in strong params disappears

在 Rails 5.0.2 api 中遇到強參數問題。 我無法發布確切的代碼,但是參數在方法中收集,然后在控制器的創建操作中使用。

def create
     render_json Model.create(create_params_method)
end

def create_params_method
     create_params = params.require(:model).permit(:name, array_of_ids: [])
     create_params
end

當我提交請求時, params包含array_of_params參數,但是當它通過 params 方法運行時,它消失了,我只有名字。 試圖追蹤array_of_ids在哪里/為什么被拒絕,但到目前為止沒有運氣。 我一直使用堆棧來尋求幫助,如果需要,我可以提供更多信息,但這是我第一次真正提出問題,所以請耐心等待😄。

因為params.require(:model).permit(:name, array_of_ids: [])確實會從received params過濾掉mentioned params received params ,所以如果你有其他任何東西,它就會消失。 例如,如果你收到

user: {id: 1, name: 'sahil', last_name: 'grover', roles: [1,2,3], is_admin: true}

你的參數過濾器是

params.require(:user).permit(:id, :name, :last_name, roles: [])

那么你會得到的結果是

{id: 1, name: 'sahil', last_name: 'grover', roles: [1,2,3]}

is_admin將被刪除,因為它未列在permitted params

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM