将参数拆分为数组元素

时间:2018-12-21 01:12:24

标签: ruby-on-rails ruby-on-rails-4

我有一些要传递到我的更新操作中的参数,我想将其转换为整数数组,例如[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"}

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

如果类似arr的数组= [“ 1、2、3”,“ 4、5、6”] 然后使用以下内容:

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