Вы звоните read
на local_file
, это строка, содержащая имя файла. Я думаю, вы хотели набрать my_local_file.read
, чтобы использовать объект ввода-вывода, полученный из open
. (... или File.read local_file
.)
Не то, чтобы это была лучшая форма: почему вы все равно пишете во временный файл? У вас есть данные в памяти, так что просто передайте их напрямую.
Если вы хотите записать в локальный файл, я рекомендую блок из open:
open(local_file, 'w') do |fh|
fh.print ...
end
Таким образом, Ruby позаботится о том, чтобы закрыть файл для вас и все такое.