我将从 PHP 文件中选择的复选框列表发送到我们的 Rails API 服务器。所有选中项目的 ID 将以 json 格式发送(campaign_ids
in json_encode
from PHP):
我得到了一个像这样传递给我们 API 的 URL
Started PUT "/campaigns/function.json?campaign_ids=["6","7"]&user_id=0090000007"
我需要获取 campaign_ids
["6","7"]
并使用 array.each do || 像处理任何其他数组一样处理它结束
如何将其转换为数组以便使用 array.each
?
下面的示例代码可以实现,但我认为还有更好的方法吗?
campaign_ids = params[:campaign_ids].to_s # [\"6\",\"7\"]
campaign_ids = campaign_ids.gsub(/[^0-9,]/,'') # 6,7
if campaign_ids.size.to_i > 0 # 3 ??
campaign_ids.split(",").each do |campaign_id|
...
end
end
最佳答案
URL 的正确格式应该是 campaign_ids[]=6&campaign_ids[]=7
。当您执行 params[:campaign_ids] 时,这将自动生成一个 [6, 7]
数组。
但假设您无法更改不正确参数的格式,您仍然可以通过 JSON.parse(params[:campaign_ids])
获取它
关于ruby-on-rails - Rails 参数到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43062107/