[英]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.