Преобразование строки в массив в rails

я отправляю массив из клиента rest и получаю его следующим образом:"[1,2,3,4,5]"

Теперь я просто хочу преобразовать его в массив без использования Ruby's eval метод. Любой метод Ruby по умолчанию, который мы могли бы использовать для этого?

 "[1,2,3,4,5]" => [1,2,3,4,5]

3 ответов


возможно это?

   s.tr('[]', '').split(',').map(&:to_i)

require 'json'

JSON.parse "[1,2,3,4,5]"
  #=> [1, 2, 3, 4, 5] 

JSON.parse "[[1,2],3,4]"
  #=> [[1, 2], 3, 4] 

Если вы хотите избежать eval, еще один способ:

"[1,2,3,4,5]".scan(/\d/).map(&:to_i) #assuming you have integer Array as String
#=> [1, 2, 3, 4, 5]