簡體   English   中英

使用strong_params允許任意整數

[英]Permit arbitrary number of integers with strong_params

我在想也許要走一個數組,但是我不確定如何只允許整數數組。 這是我的開始:

def put_params
  params.require(:project).permit(technologies: [])[:technologies]
end

我希望能夠安全地接受任意數量的技術ID。

只要將technologies參數作為數組傳遞,您只需要使用

def put_params
  params.require(:project).permit(:technologies)
end

這里的基本部分是如何傳遞參數。 您需要確保參數作為數組傳遞。 您可以在官方文檔中閱讀更多內容

參數哈希不限於一維鍵和值。 它可以包含數組和(嵌套的)哈希。 要發送值數組,請在鍵名稱后附加一對空的方括號“ []”:

 GET /clients?ids[]=1&ids[]=2&ids[]=3 

在此示例中,實際網址將被編碼為“ / clients?ids%5b%5d = 1&ids%5b%5d = 2&ids%5b%5d = 3”,因為網址中不允許使用“ [”和“]”。 大多數時候,您不必擔心,因為瀏覽器會為您處理,Rails會在接收到它后對其進行解碼,但是如果您發現自己必須手動將這些請求發送到服務器,您必須記住這一點。

現在,params [:ids]的值將為[“ 1”,“ 2”,“ 3”]。 請注意,參數值始終是字符串。 Rails不會嘗試猜測或強制轉換類型。

暫無
暫無

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

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