繁体   English   中英

Rails强烈的params,名字中带有“dot”

[英]Rails strong params with “dot” in name

我需要在Rails 4中允许一个参数,它的名字中有一个点:

我的params哈希看起来如下:

{
  "dictionary_objects.id" => [
    "102", "110", "106"
  ]
}

我可以得到参数值:

>> params['dictionary_objects.id']
=> [
 [0] "102",
 [1] "110",
 [2] "106"
]

但是当我尝试允许它时,它返回一个空哈希:

 >> params.permit('dictionary_objects.id')
 Unpermitted parameters: dictionary_objects.id
 => {}

有谁知道我怎么能在它的名字上留下一个带点的params?

谢谢。

我认为它只是没有允许它,因为你有一个集合,你告诉它允许单个值参数。 如果您使用:

params.permit(:'dictionary_objects.id' => [])

那一切都应该好。

对于边缘情况,我建议一个非常有用的解决方法:

params.slice('dictionary_objects.id').permit!

因此,你可以将键盘列入白名单,并且因为强大的障碍而不会变得疯狂。


边注:

rails内置于接收诸如关于has_many关系的dictionary_object_ids has_many args,你可以利用它来代替它。

暂无
暂无

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

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