簡體   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