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