2015-07-23 4 views
3

Я пытаюсь передать массив как параметр в мой метод контроллера, но он не работает для меня. Я пробовал его следующими способами:ROR проходящий массив как параметр

http://localhost:3000/med?med_ids=[2,1] 

Я пробовал также следующим образом и его работу для меня. Я просто хочу знать, любое хорошее решение

http://localhost:3000/manufacturer/1/medicines?medicine_id[]=2&medicine_id[]=1 

внутри контроллера:

@val = params[:medicine_id] 

значения Coming, но я хочу, чтобы сделать его как массив.

Нужна помощь. Спасибо.

+1

Что вы получаете в 'Params [: medicine_id]' – RSB

+0

Вы могли JSON кодировать массив, а затем разобрать его из контроллера –

+0

я получаю в виде строки – nilkash

ответ

1

Если вы пытаетесь отправить параметр как [1,2], то в вашем контроллере вы получите, как «[1,2]»,

и вам необходимо разобрать для Садись в исходном массиве, как: JSON.parse "[1,2]"

анс: [1,2] и класс массив

3

Вы не можете получить массив из строки запроса, как это:

?med_ids=[2,1] 

Если вы хотите передать массив в строку запроса, вам нужно передать его следующим образом (как вы упомянули в вопросе):

?medicine_id[]=2&medicine_id[]=1 

В качестве ответа на ваш вопрос: 2-й путь - это абсолютно хороший путь и правильный путь. Смирись с этим.

0

При желании вы можете создавать свои контроллеры для разбора разделителей массива:

?medicine_ids=1,2 

CON Троллингист:

medicine_ids = params[:medicine_ids].split(',') 
Смежные вопросы