Запись строки в файл для загрузки Ruby on Rails

#ruby-on-rails #ruby #file #file-io

#рубин на рельсах #рубин #файл #файл-ввод-вывод

Вопрос:

Я создаю приложение, которое выполняет множество вызовов API. Я хотел бы иметь возможность записывать выходные данные каждого вызова API в файл, а затем загружать этот файл. Пока что это то, как выглядит мой контроллер:

 def show  @resp = Faraday.get("https://my_api_endpoint") end   

Как я могу записать строку в файл и загрузить этот файл с помощью Ruby on Rails?

Комментарии:

1. Насколько велика реакция? Вы хотите загрузить ответ только один или несколько раз? Вам нужно убедиться, что только пользователю, запрашивающему запрос API, разрешено загружать файл позже? Как выглядит настройка вашего сервера, можете ли вы сохранить файл в локальной файловой системе или вам нужно сохранить его в другом месте (например, S3 и т. Д.)

Ответ №1:

Ваш вопрос слишком расплывчат.

Вы можете записать в файл следующим образом:

 File.write(Rails.root.join("PATH_TO_FILE.txt"), @resp.to_s, mode: "a")  

Но вы должны прикрепить файл к своей модели, чтобы иметь возможность получить его позже, например

has_one_attached :response_txt