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