a = IO.readlines('uniqID.txt')
puts id = a[0]
id = ["Gh089k" , "HG987"] #getting value from txt file
id.class #String
id.push("GD977")
Как преобразовать указанную выше строку в массив. так что я использую такой метод, как push. Здесь id строка выглядит как массив
Error: undefined method `push' for "[\"Gh089k\", \"HG987\"]":String (NoMethodError)
@mrzasa тип идентификатора - строка. id.class выдает строку в качестве вывода
можешь поставить первую строчку своего файла uniqID.txt? Похоже, это "[\"Gh089k\", \"HG987\"]", поэтому, когда рубин его читает, это просто строка ...
пожалуйста, просто запустите id = ["Gh089k" , "HG987"]; id.class в консоли
@mrzasa id = ["Gh089k", "HG987"]; Это дает тип Array. но когда я читаю из txt, он действует как строка типа
@compsy в вашем примере кода вы назначаете ["Gh089k" , "HG987"] на id, тем самым перезаписывая любое предыдущее значение. Следовательно, id.class - это Array, а не String. Если вы хотите показать что-то еще, вам следует соответствующим образом отредактировать свой пример (возможно, предоставить два примера).



Похоже на строку JSON. Вы можете проанализировать строку json, чтобы получить желаемый результат.
require 'json'
JSON.parse("[\"Gh089k\", \"HG987\"]") # => ["Gh089k", "HG987"]
Здесь:
id = JSON.parse(a[0])
Надеюсь, поможет !
Не могли бы вы проверить пример кода?
idдолжен иметь типArray: [23]pry(main)> id = ["Gh089k" , "HG987"] => ["Gh089k", "HG987"] [25] pry(main)> id.class => Array