Ruby将URL参数转换为数组

时间:2018-12-05 10:22:20

标签: ruby-on-rails-4

我对此网址进行了编码:

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作为数组?在Rails 4上

1 个答案:

答案 0 :(得分:0)

您应该执行以下操作:

params[:fqdns].to_a

这样做,将产生以下结果:

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

如果仅保留值,可以尝试:

params[:fqdns].values

这样做,将为您提供以下信息:

['150.212.3.249', ...]

但是,为此,您必须在ruby类中进行操作,我强烈建议您在控制器中进行操作。希望我能帮忙。

更新

在推荐之后,您可以使用strong parameters进行操作,并允许参数fqdns作为哈希值(因为您路由接收哈希值):

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

此后,您已经必须执行上述解决方案才能将fqsnd作为数组