Rails Strong Params — разрешить индексы для массива

#ruby-on-rails #strong-parameters

#ruby-on-rails #strong-параметры

Вопрос:

Я имею дело с загрузчиком нескольких файлов, и параметры, которые я получаю от моего загрузчика, выглядят примерно так:

 "pdf_conta"=>{"0"=>#<ActionDispatch::Http::UploadedFile:0x007faed4374738 @tempfile=#<Tempfile:/tmp/RackMultipart20161010-6502-go0te.pdf>, @original_filename="AVENIDA.pdf", @content_type="binary/octet-stream", @headers="Content-Disposition: form-data; name="conta[pdf_conta][0]"; filename="AVENIDA.pdf"rnContent-Type: binary/octet-streamrn">, 
"1"=>#<ActionDispatch::Http::UploadedFile:0x007faed4374440 @tempfile=#<Tempfile:/tmp/RackMultipart20161010-6502-e5t82z.pdf>, @original_filename="BANDEIRANTES.pdf", @content_type="binary/octet-stream", @headers="Content-Disposition: form-data; name="conta[pdf_conta][1]"; filename="BANDEIRANTES.pdf"rnContent-Type: binary/octet-streamrn">}}
  

и я не могу разрешить этот параметр, потому что, если я добавлю что-то подобное :pdf_conta => {} в свои разрешенные параметры, это выдаст мне ошибку for Unpermitted parameters: 0, 1 . Как я могу разрешить этому хэшу иметь столько индексов, сколько ему нужно? Спасибо!

Комментарии:

1. Что произойдет, если вы попытаетесь :pdf_conta => [] ?

2. Это даст мне недопустимые параметры для pdf_conta, поскольку conta — это хэш, а не массив

3. Так что, если вы преобразуете его в массив? params['pdf_conta'] = params['pdf_conta'].values

4. Хэш с целочисленными ключами представляет собой массив. Вы никогда не увидите в параметрах параметр [:attr][0] = «значение», вместо этого это хэш с ‘0’ => «значение»