将参数拆分为数组元素

split params into array elements

我有参数传递到我的更新操作中,我想将其转换为一个整数数组,例如 [1, 2, 3],目前该数组有一个字符串元素 ["1, 2, 3"]。我以为我可以只从参数中取出“1、2、3”并将它们拆分为 [“1”、“2”、“3”] 数组,然后转换为整数数组。

arr = article_params[:allowed_organization_ids]
arr_split = arr.split(",").map(&:to_i)
Rails.logger.debug(arr_split.inspect)

#<NoMethodError: undefined method `to_i' for ["4,2"]:Array>

如果我尝试只拆分字符串,它不起作用,我会得到一组额外的括号,像这样 [["1,2,3"]]

arr = article_params[:allowed_organization_ids]
arr_split = arr.split(",")
Rails.logger.debug(arr_split.inspect) 

参数:

  Processing by ArticlesController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"j+2xEqGf9ECwjgfGHGdaXwiL09klNGYE12fdfdfdfdfdfn47e8abcuukp9sL5ZzMw==", 
"article"=>{"title"=>"test1", "subtitle"=>";ji", 
"product_line_id"=>"3", "is_highlighted"=>"0", "is_featured"=>"0",  "allowed_organization_ids"=>["4,2"]}, "id"=>"168"}

如果它是嵌套数组,只需调用 first...

arr_split = arr.first.split(",").map(&:to_i)

如果像 arr = ["1, 2, 3", "4, 5, 6"] 这样的数组 然后使用以下内容:

arr =  ["1, 2, 3", "4, 5, 6"]
converted_array = arr.join(",").split(",").collect {|i| i.to_i}