繁体   English   中英

在Rails 4中使用params.permit将嵌套的params列入白名单

[英]Whitelist nested params with params.permit in Rails 4

考虑这样的参数集:

params = ActionController::Parameters.new(
 {sync:{ 
   "id1":[{error:"1", balance:"1"}], 
   "id2":
       [
         {error:"2", balance:"2"},
         {error:"22", balance:"22"},
         ....
         {error:"n", balance:"n"}
       ]
   } 
  }
)

如何将嵌套键“ id1”和“ id2”白名单

params.require(:sync)
=> {"1"=>[{"error"=>"1", "balance"=>"1"}], "2"=>[{"error"=>"2",   "balance"=>"2"}]}

可以,但是现在我想更深入。 在此哈希中,我想通过键从值中获取每个数组。 我怎样才能做到这一点?

>> params.require(:sync).permit(:id)
Unpermitted parameters: 1, 2
=> {}

我不喜欢id2的定义方式,但是我不知道您是否可以操纵接收数据的方式。

您应该尝试像这样设置白名单:

params.require(:sync).permit({id1: [:error, :balance]}, {id2: [{:error, :balance},{:error, :balance},{:error, :balance}]})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM