允许使用strong_params任意数量的整数

时间:2015-06-25 21:09:40

标签: ruby-on-rails security params

我想也许数组是可行的方法,但我不确定如何只允许整数数组。以下是我开始的内容:

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

我希望能够安全地接受任意数量的技术ID。

1 个答案:

答案 0 :(得分:2)

只要将technologies param作为数组传递,您只需使用

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

这里的基本部分是你如何传递参数。您需要确保参数作为Array传递。您可以在official documentation中阅读更多内容。

  

params散列不仅限于一维键和值。它可以包含数组和(嵌套)哈希。要发送一组值,请附加一对空方括号" []"关键名称:

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

此示例中的实际网址将编码为" / clients?ids%5b%5d = 1& ids%5b%5d = 2& ids%5b%5d = 3" as" ["和"]" URL中不允许使用。大多数时候你不必担心这个问题,因为浏览器会为你处理它,Rails会在收到它时将其解码,但如果你发现自己不得不将这些请求发送给手动服务器,你必须记住这一点。

     

params [:ids]的值现在为[" 1"," 2"," 3"]。请注意,参数值始终是字符串; Rails不会尝试猜测或转换类型。