Ruby конвертирует параметры URL в массив - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть этот кодированный URL:

Started PUT "/path/thing/9812/close?status=close&shutdown_on=2018-12-05%2010%3A08%3A06&affected_external_id=15027&fqdns%5B0%5D=150.212.3.249"

, который расшифровывается так:

"/path/thing/9812/close?status=close&shutdown_on=2018-12-05 10:08:06&affected_external_id=15027&fqdns[0]=150.212.3.249"

Я получаю следующие параметры:

 Parameters: {"status"=>"close", "shutdown_on"=>"2018-12-05 10:08:06", "affected_external_id"=>"15027", "fqdns"=>{"0"=>"150.212.3.249"}, "id"=>"9812"}

Как получить fqdnкак массив?на рельсах 4

1 Ответ

0 голосов
/ 05 декабря 2018

Вы должны сделать следующее:

params[:fqdns].to_a

Выполнение этого приведет к следующему:

{['0', '150.212.3.249', ...]}

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

params[:fqdns].values

Выполнение этого даст вам следующее:

['150.212.3.249', ...]

Но для этого вы должны сделать это в классе ruby, я настоятельно рекомендую вам сделать это внутри вашего контроллера.Надеюсь, я смогу помочь.

ОБНОВЛЕНИЕ

После рекомендации вы можете сделать это с сильными параметрами , разрешив параметру fqdns в качестве хэша (потому что вы получаете маршрутхэш):

 def resource_params 
  params.permit(....., fqdns: {})
 end

После этого вам уже нужно выполнить приведенные выше решения, чтобы получить fqsnd в виде массива

...