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