У меня есть параметры, передаваемые в мое действие обновления, которые я хотел бы преобразовать в массив целых чисел, например [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"}