Rails 名称中带有 "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"
]
但是当我尝试允许它时,它 returns 一个空哈希:
>> params.permit('dictionary_objects.id')
Unpermitted parameters: dictionary_objects.id
=> {}
有谁知道如何允许名称中带有点的参数?
谢谢。
对于极端情况,我推荐一个非常有用的解决方法:
params.slice('dictionary_objects.id').permit!
所以你做白名单键,不要因为强参数而变得疯狂。
旁注:
rails 内置接收 dictionary_object_ids
之类的参数,用于 has_many
关系,您可以利用它。
我认为它只是不允许它,因为你有一个集合并且你告诉它允许单个值参数。如果您使用:
params.permit(:'dictionary_objects.id' => [])
那应该一切都好。
我需要在 Rails 4 中允许一个参数,它的名称中有一个点:
我的 params
哈希如下所示:
{
"dictionary_objects.id" => [
"102", "110", "106"
]
}
我可以得到参数值:
>> params['dictionary_objects.id']
=> [
[0] "102",
[1] "110",
[2] "106"
]
但是当我尝试允许它时,它 returns 一个空哈希:
>> params.permit('dictionary_objects.id')
Unpermitted parameters: dictionary_objects.id
=> {}
有谁知道如何允许名称中带有点的参数?
谢谢。
对于极端情况,我推荐一个非常有用的解决方法:
params.slice('dictionary_objects.id').permit!
所以你做白名单键,不要因为强参数而变得疯狂。
旁注:
rails 内置接收 dictionary_object_ids
之类的参数,用于 has_many
关系,您可以利用它。
我认为它只是不允许它,因为你有一个集合并且你告诉它允许单个值参数。如果您使用:
params.permit(:'dictionary_objects.id' => [])
那应该一切都好。