ruby-on-rails - Rails 参数到数组

标签 ruby-on-rails ruby

我将从 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/

相关文章:

ruby-on-rails - Windows 7 上的 Ruby on Rails RMagick

ruby-on-rails - 如何在 Rack 中间件中使用 cookie?

ruby-on-rails - 运行 Rails 控制台时未初始化的常量测试

ruby - 如何创建一个方法来检查字符串是否以大写字母开头?

ruby-on-rails - RSpec 说明 : Why does the `should` come before the method that should be causing it?

ruby-on-rails - AWS S3 in rails-如何设置s3_signature_version参数

ruby - 单引号 Ruby 字符串——不一致的转义

ruby - 覆盖 ActiveRecord 中的所有表名约定

ruby-on-rails - 有没有办法用两个数据库列来支持新的 Rails 5 属性

ruby - 为什么部分符号 (§) 无法正确读取,具体取决于它的创建位置?